Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
预处理器宏是否可以确定其参数是否为字符串(文字)?
例如:
#define IS_STRING(token) ??? IS_STRING("foo") // expands to 1 IS_STRING(foo) // expands to 0
是的。但输出略有不同:
#define IS_STRING(token) "" token
字符串文字会很好。对于非字符串,它会给出编译器错误。
逻辑:编译器会自动连接字符串文字,所以"" token如果token是字符串文字就可以了。
"" token
token
这是一个相关的讨论。