[C++基本编程题]本试题仅用于考查C++/C程序员的基本编程技能。 内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。 考试成绩能反映出考生的编程质量以及对C++/C的理解程度, 但不能...+阅读
1. 将程序改成Unicode编程需要做哪些修改?
window 2k以后的系统底层都是基于Unicode的,就算你调用ANSI的API(以A结尾比如SetWidowsTextA),系统也会在你的进程默认堆上动态分配一块内存,存放转换后的Unicode字符串,然后把转换后的字符串传递给API,如果调用了返回值为ANSI字符串的API,Windows会在后台进行相反的转换。
其实VC中进行Unicode编程也不麻烦,大概如下:
1.为工程添加UNICODE和_UNICODE预处理选项,在VC.中就是 项目 - 属性 - c/c++ - 预处理器 在预处理定义中加入这两个宏定义(vc6中 project - settings - c/c++ - general 中的 Preprocessor definitions).
2.Include TCHAR.h(一般在stdafx.h中)然后把所有使用char*定义变量的地方换为LPTSTR/TCHAR*或LPCTSTR/const TCHAR*(对应于const char*).
3.把所有的字符串常量用_T()宏包起来,比如 TCHAR* szText = _T(我的Text);
4.所有的C库字符串操作函数也做相应的替换,比如
strlen -_tcslen
strcat -_tcscat
strcmp -_tcscmp
......
注意,这些函数中的"文本长度"均为字符个数,而非char个数具体参看MSDN.
5.API调用一般不用做特殊处理,当定义了UNICODE和_UNICODE后,所有的API都会被宏指向W结尾的版本(不定义则指向A结尾的版本).
其实,上面所说的并非强制你使用UNICODE,如果你还想回去使用ANSI,没有问题,把第一步定义的两个宏拿掉就OK了,继续我们的ANSI编程。
2. TCHAR同char的区别
TCHAR 就是当你的字符设置为什么就是什么
例如:程序编译为 ANSI, TCHAR 就是相当于 CHAR
当程序编译为 UNICODE, TCHAR 就相当于 WCHAR ,每个字符占两个字节
3. BOOL同bool的区别
意义上没什么区别,但却是两种类型.
bool应该是C语言里定义的,返回值为true和false(事实上就上1和0)
而BOOL应该是MFC及SDK里定义返回值的.
它的定义应该是:typedef int BOOL;(WINDEF.H中定义)
也就是说它是int型的
返回值是大写的TRUE 和FALSE
定义如下:
&emspdefine FALSE 0
&emspdefine TRUE 1
(AFX.H中如此定义)
一个是布尔型,一个是整型.
事实上整型如果取1和0就可以代替布尔型了.
延伸阅读:
c++程序笔试题简答题(25分) 1、头文件中的 ifndef/define/endif 干什么用?(5分) 答:防止该头文件被重复引用。 2、#include 和 #include filename.h 有什么区别?(5分) 答:对于#include ,编译...
东芝面试回顾东芝面试回顾 为了得到什么,必须以失去什么作为代价。大部分时候,这个等价法则还是适用的。坐在980上赶往王府井面试TOSHIBA的时候,突然觉得这个世界多么地大,可是能够给我们选...
C++语言习题(1)下列关于栈的叙述中正确的是 A)在栈中只能插入数据 B)在栈中只能删除数据 C)栈是先进先出的线性表 D)栈是先进后出的线性表 (2)下列数据结构中,插入时不需要移动其他元素...
VC++笔试题目题目一:设计一个自然数数组,包含50个范围在(0,200)的自然数,并从小到大排列,随机产生一个范围在(0,200)自然数,去数组中用二分查找法查找,如果存在返回真,并获取这个数在数组中的位置...