我正在尝试做一个调试系统,但它似乎不起作用。
我想要完成的是这样的:
#ifndef DEBUG
#define printd //
#else
#define printd printf
#endif
有没有办法做到这一点?我有很多调试消息,但我不喜欢这样做:
if (DEBUG)
printf(...)
code
if (DEBUG)
printf(...)
...
不,你不能。在预处理指令的任何处理开始之前,注释将从代码中删除。因此,您不能将注释包含到宏中。
此外,任何稍后使用任何宏技巧来“形成”评论的尝试都不能保证有效。编译器不需要将“迟到的”注释识别为注释。
实现您想要的最好方法是在 C99 中使用带有可变参数的宏(或者,也许使用编译器扩展)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)