可能重复:
创建字符串的 C 宏
我有一个接受一个类型参数的函数char*
,例如f("string");
如果字符串参数是在函数调用中由动态定义的,如何在字符串主体中扩展宏?
例如:
#define COLOR #00ff00
f("abc COLOR");
相当于
f("abc #00ff00");
而是不执行扩展,并且函数按字面意思接收abc COLOR
.
特别是,我需要将宏扩展为完全\"#00ff00\"
,以便将这个带引号的标记与传递给的字符串参数的其余部分连接f()
起来,包括引号;也就是说,预处理器必须完成他的工作并欢迎编译器将代码f("abc COLOR");
从f("abc \"#00ff00\"");