TCHAR和CHAR有何不同???
3个回答
推荐于2018-05-06
展开全部
char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了消除各编译器的差别,重新定义了一些数据类型,你提到了另外几个类型都是这样。CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。LPCSTR 相当于CONST CHAR * 和LPSTR 相当于CHAR *。
2013-08-04
展开全部
这个要看你预处理器的设置,如果是_MBCS, 那么TCHAR = char; 如果 如果设置的是UNICODE和_UNICODE,那么TCHAR=wchar_t
下列3种情况下,使用Unicode将会使你受益:
1.你的程序只运行在Windows NT系统中。
2. 你的程序需要处理超过MAX_PATH个字符长的文件名。
3. 你的程序需要使用XP中引入的只有Unicode版本的API.
Windows 9x 中大多数的 API 没有实现 Unicode 版本。所以,如果你的程序要在windows 9x中运行,你必须使用MBCS APIs。然而,由于NT系统内部都使用Unicode,所以使用Unicode APIs将会加快你的程序的运行速度。每次,你传递一个字符串调用MBCS API,操作系统会把这个字符串转换成Unicode字符串,然后调用对应的Unicode API。如果一个字符串被返回,操作系统还要把它转变回去。尽管这个转换过程被高度优化了,但它对速度造成的损失是无法避免的。
下列3种情况下,使用Unicode将会使你受益:
1.你的程序只运行在Windows NT系统中。
2. 你的程序需要处理超过MAX_PATH个字符长的文件名。
3. 你的程序需要使用XP中引入的只有Unicode版本的API.
Windows 9x 中大多数的 API 没有实现 Unicode 版本。所以,如果你的程序要在windows 9x中运行,你必须使用MBCS APIs。然而,由于NT系统内部都使用Unicode,所以使用Unicode APIs将会加快你的程序的运行速度。每次,你传递一个字符串调用MBCS API,操作系统会把这个字符串转换成Unicode字符串,然后调用对应的Unicode API。如果一个字符串被返回,操作系统还要把它转变回去。尽管这个转换过程被高度优化了,但它对速度造成的损失是无法避免的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-04
展开全部
For ANSI and DBCS platforms, TCHAR is defined as follows:
typedef char TCHAR;
For Unicode platforms, TCHAR is defined as synonymous with the WCHAR type.
typedef char TCHAR;
For Unicode platforms, TCHAR is defined as synonymous with the WCHAR type.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询