Sil*_*pur 1 c macros c-preprocessor
我有以下代码:
#define MY_MACRO(PARAM) int PARAM_int; double PARAM_double; [subsequent instructions]
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不起作用,这意味着PARAM不会在变量名称中被替换.这可以解决吗?
PARAM_int被认为是一个单一的标记,不同于PARAM.您可以使用以下命令在宏定义中连接标记##:
#define MY_MACRO(PARAM) int PARAM ## _int; double PARAM ## _double;
Run Code Online (Sandbox Code Playgroud)
现在,PARAM将扩展为您调用宏的任何内容,然后生成的令牌将与_int和粘贴在一起_double.