【发布时间】:2014-01-01 13:56:04
【问题描述】:
我需要将#define 参数字符串化为一个宽字符串。
所以当
#define c(x) x,#x
用作:
{c(maria),0,false},
给出:
{maria,"maria",0,false} // maria is a member of an enum.
我不知道怎么做,但要创建一个宽字符串。
我的意思是不要让"maria" 拥有L"maria"
【问题讨论】:
-
请大家回答我:这种问题不应该标记为
C而不是C++吗?即使 C++ 与 C 兼容,这种做法(宏和字符串化)也不是好的 C++。它的C -
@Manu343726 不,C++ 与 C 不是 100% 兼容,即使在预处理阶段也是如此。
-
@Manu343726:但有时它是必要的。
-
@hvd 我知道,这就是我问的原因。我总是试图将 C 和 C++ 视为不同的语言,而这种标记为 C++ 的问题无济于事
-
@Manu343726 如果 OP 想要一个适用于 C++ 的答案,他应该将问题标记为 C++。如果问题被标记为 C,并且 OP 得到的答案仅适用于 C 而不是 C++,那么这对任何人有什么帮助?
标签: c++ c-preprocessor stringification