【问题标题】:Differentiate between TCHAR and _TCHAR区分 TCHAR 和 _TCHAR
【发布时间】:2010-06-01 10:25:10
【问题描述】:

在 Windows 头文件 tchar.h 中定义的两个符号 TCHAR_TCHAR 类型有什么不同?举例说明。简要描述在代码中使用 TCHAR 而不是 _TCHAR 的场景。 (10 分)

【问题讨论】:

  • 为什么你的问题听起来像是作业?你不能花点时间改写你的考试,让它听起来更个人化吗?
  • 我实际上花了额外的时间,并且竭尽全力让它听起来像家庭作业。厌倦了在 Windows 标头中看到所有这些小特质,没有押韵或理由。
  • tchar.h 不是 Windows SDK 的一部分,而是 Microsoft CRT 的一部分...

标签: windows unicode tchar


【解决方案1】:

除了@RussC 所说的之外,TCHAR 被 Win32 API 使用并且基于 UNICODE 定义,而 _TCHAR 被 C 运行时使用并且基于 _UNICODE 定义. UNICODE_UNICODE 通常一起定义/省略,使 TCHAR_TCHAR 可以互换,但这不是必需的。它们在语义上是分开的,供不同的框架使用。

【讨论】:

    【解决方案2】:

    在这里找到你的答案:

    MSDN Forums >> Visual Studio Developer Center >> TCHAR vs _TCHAR

    TCHAR 和 _TCHAR 是相同的,虽然因为 TCHAR 没有 前导下划线,微软不允许将其保留为 关键字(想象一下,如果你有一个名为 TCHAR 的变量。想想会怎样 发生)。因此,当语言扩展被定义时,TCHAR 不会被定义 禁用 (/Za)。

    TCHAR 在 winnt.h 中定义(当你 #include 时你会得到它 ),以及 /Ze 下的 tchar.h。 _TCHAR 仅在 tchar.h 中可用(它也 #defines _TSCHAR 和 _TUCHAR)。这些是普通 TCHAR 数据类型的无符号/有符号变体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多