在Windows header tchar.h中定义的两个符号TCHAR和_TCHAR类型之间有什么不同?用例子来解释。简要描述在代码中使用TCHAR而不是_TCHAR的场景。(10分)
发布于 2010-06-01 18:31:55
在这里找到你的答案:
MSDN Forums >> Visual Studio Developer Center >> TCHAR vs _TCHAR
TCHAR和_TCHAR是相同的,尽管由于
没有前导下划线,微软不允许将其保留为关键字(想象一下,如果您有一个名为TCHAR的变量。想一想会发生什么)。因此,当语言扩展被禁用时,将不会#定义TCHAR (/Za)。
TCHAR是在winnt.h中定义的(当你#include时你会得到它),在/Ze下也定义了tchar.h。_TCHAR只在tchar.h中可用(它还定义了_TSCHAR和_TUCHAR)。这些是普通TCHAR数据类型的无符号/有符号变体。
发布于 2012-07-13 10:37:29
除了@RussC所说的,TCHAR由Win32应用编程接口使用并基于UNICODE定义,而_TCHAR由C运行时使用并基于_UNICODE定义。UNICODE和_UNICODE通常一起定义/省略,使得TCHAR和_TCHAR可以互换,但这不是必需的。它们在语义上是分开的,以供不同的框架使用。
https://stackoverflow.com/questions/2948945
复制相似问题