C++ 令人困惑的宏

Noa*_*oah 4 c++

我正在查看一些 windows directx 应用程序代码,看到他们使用宏 _T(x) 来设置他们的窗口名称,在查看宏定义时我看到了这个

#define _T(x)       __T(x)
Run Code Online (Sandbox Code Playgroud)

然后我跟着看了看__T

#define __T(x)      x
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Rot*_*tem 7

_T(x)通常是与平台无关的文本字符类型的宏。在某些平台上,它可能会解析为仅x. 在其他使用宽字符的情况下,它可能会解析为L ## x,例如,_T("abc")可能会解析为"abc", 或L"abc"

  • 不知道为什么这被否决了;这是正确的答案。您可能还会提到这是一种窗口主义。 (2认同)