【发布时间】:2012-10-09 03:55:25
【问题描述】:
我有一个函数接受char* 类型的一个参数,例如f("string");
如果字符串参数是在函数调用中动态定义的,如何在字符串体中展开宏?
例如:
#define COLOR #00ff00
f("abc COLOR");
相当于
f("abc #00ff00");
但是不执行扩展,并且函数接收字面上的abc COLOR。
特别是,我需要将宏完全扩展为\"#00ff00\",以便将这个带引号的标记与传递给f() 的其余字符串参数连接起来,包括引号;也就是说,预处理器必须完成他的工作并欢迎编译器将代码从f("abc COLOR");转换为f("abc \"#00ff00\"");
【问题讨论】:
标签: c macros c-preprocessor c-strings