Windows 头文件 tchar.h 中定义的两个符号TCHAR
和类型之间的各种区别是什么?_TCHAR
举例说明。简要描述在代码中使用 TCHAR 而不是 _TCHAR 的场景。(10 分)
问问题
4748 次
2 回答
10
除了@RussC 所说的之外, TCHAR
Win32 API 使用它并基于UNICODE
定义,而_TCHAR
C 运行时使用它并基于_UNICODE
定义。UNICODE
并且_UNICODE
通常一起定义/省略,制作TCHAR
和_TCHAR
互换,但这不是必需的。它们在语义上是分开的,供不同的框架使用。
于 2012-07-13T02:37:28.713 回答
8
在这里找到你的答案:
MSDN 论坛 >> Visual Studio 开发人员中心 >> TCHAR 与 _TCHAR
TCHAR 和 _TCHAR 是相同的,尽管由于 TCHAR 没有前导下划线,因此不允许 Microsoft 将其保留为关键字(想象一下,如果您有一个名为 TCHAR 的变量。想想会发生什么)。因此,当禁用语言扩展 (/Za) 时,不会 #defined TCHAR。
TCHAR 在 winnt.h 中定义(您将在 #include 时获得),以及 /Ze 下的 tchar.h。_TCHAR 仅在 tchar.h 中可用(其中还 #defines _TSCHAR 和 _TUCHAR)。这些是普通 TCHAR 数据类型的无符号/有符号变体。
于 2010-06-01T10:31:54.783 回答