Ric*_*ard 1 c programming-languages c-preprocessor
我对以下c代码感到困惑
#define MACRO (xx) \
foo(xx)
...
#ifdef A
return MACRO(a);
#endif
...
Run Code Online (Sandbox Code Playgroud)
源无法编译.但是当我改变定义时
#define MACRO \
foo(a)
Run Code Online (Sandbox Code Playgroud)
因此,如果我想在这种情况下使用带有参数的MACRO,我该怎么办?谢谢..
之间移除空间MACRO
和(xx)
.
如果将空间留在那里,预处理器不会将其(xx)
视为参数,而是作为扩展的一部分.所以每当它看到时MACRO
,它都会替换它(xx) foo(xx)
.
归档时间: |
|
查看次数: |
249 次 |
最近记录: |