【发布时间】:2014-11-05 21:18:46
【问题描述】:
在我的代码中,我使用了很多表达式,例如:
#if DEBUG
printf("Some text = %d", param);
#endif
我想知道是否可以将其更改为宏,例如:
DEBUG("Some text = %d", param);
或至少:
DEBUG("Some text =", param);
?
【问题讨论】:
-
#if本身是非法的,你的意思是#ifdef FOO还是什么 -
@MattMcNabb 我解决了我的问题。
-
@SpencerGrantDoak 很好的答案。
-
@MattMcNabb 不一定是非法的。例如
gcc -DDEBUG prog.c、gcc prog.c都可以。 -
@BLUEPIXY 语法规范是
#ifconstant-expression new-line ,所以这可能是 gcc 错误或 gcc 扩展. gcc 用它做什么?