如果定义了unicode,TEXT(“x”)宏如何扩展为L“x”,如果未定义unicode,如何“x”,因为当我尝试编译以下代码时,它会显示“错误#1049:语法错误在宏参数中。“
#define T("x") "x"
int main()
{
}
答案 0 :(得分:2)
在您的安装中查找tchar.h
标头。你会得到以下内容:
#define __T(x) L ## x
在Unicode模式下,上面的宏将L
和字符串参数粘贴在一起。在ASCII模式下,没有要粘贴的前缀,因此它简单地表示为:
#define __T(x) x
请注意,您通过另一个宏 - _T()
(带有一个下划线)间接调用此宏,并将字符串文字作为参数传递。
答案 1 :(得分:1)
#define T("x") "x"
它定义了一个宏函数T
,如果没有引号,它将是一个名为x
的参数。你可以尝试这样的事情:
#define T(x) #x