Windows标头tchar.h中定义的两个符号TCHAR
和_TCHAR
类型之间有哪些差异?用例子解释。简要描述在代码中使用TCHAR而不是_TCHAR的情况。 (10分)
答案 0 :(得分:9)
除了@RussC所说的,TCHAR
由Win32 API使用,基于UNICODE
定义,而_TCHAR
由C运行时使用,基于相反,_UNICODE
定义。 UNICODE
和_UNICODE
通常一起定义/省略,使TCHAR
和_TCHAR
可互换,但这不是必需的。它们在语义上是分开的,以供不同的框架使用。
答案 1 :(得分:7)
在这里找到你的答案:
MSDN Forums >> Visual Studio Developer Center >> TCHAR vs _TCHAR
TCHAR和_TCHAR是相同的,但由于TCHAR没有 领先的下划线,微软不允许将其保留为 关键字(想象一下,如果你有一个名为TCHAR的变量。想想会发生什么 发生)。因此,当语言扩展时,TCHAR将不会被#defined定义 残疾人(/ Za)。
TCHAR在winnt.h中定义(当你#include时你会得到它 ),还有/ Ze下的tchar.h。 _TCHAR仅在tchar.h中可用(也是#defines _TSCHAR和_TUCHAR)。这些是普通TCHAR数据类型的无符号/有符号变体。