可能重复:
C宏以创建字符串
我有一个函数接受一个类型的参数char*,比如f("string");
如果字符串参数是在函数调用中由-the-fly定义的,那么如何在字符串体内扩展宏呢?
例如:
#define COLOR #00ff00
f("abc COLOR");
Run Code Online (Sandbox Code Playgroud)
相当于
f("abc #00ff00");
Run Code Online (Sandbox Code Playgroud)
但相反,不执行扩展,并且函数从字面上接收abc COLOR.
特别是,我需要精确地扩展宏\"#00ff00\",以便这个引用的标记与传递给它的其余字符串参数连接f(),包括引号; 也就是说,预处理器必须完成他的工作并欢迎编译器将代码转换f("abc COLOR");为f("abc \"#00ff00\"");