【发布时间】:2010-12-19 14:29:13
【问题描述】:
我正在尝试做一个调试系统,但它似乎不起作用。
我想要完成的是这样的:
#ifndef DEBUG
#define printd //
#else
#define printd printf
#endif
有没有办法做到这一点?我有很多调试消息,我不想这样做:
if (DEBUG)
printf(...)
code
if (DEBUG)
printf(...)
...
【问题讨论】:
-
stackoverflow.com/questions/1644868/… 的直接复制品,可能还有其他人。
-
@JonathanLeffler 用例(创建仅调试打印宏)与stackoverflow.com/questions/1644868/… 重复,但提出的字面问题(我可以在其中包含
//#define) 不是 - 所问的字面问题对其他人来说很有趣和有用。重叠是不幸的,但这里有一个独特的问题很有价值。它不应该被关闭。 -
@MarkAmery:标题是'XY Problem'——用户试图实现的解决方案是在指定的副本中,但问题是要求一些切线的东西,甚至无法实现他们想要。
-
@JonathanLeffler 不管你是否认为这个标题有问题,如果我没有在谷歌搜索结果中点击这个标题,我根本不会找到这些答案或想以某种方式做事。对我来说,问题更多是关于如何在不需要
#ifdefs的情况下从生产环境中剥离代码,并且感谢 OP 的切题问题,我找到了让我走上正轨的想法。我不会搜索关于“调试打印”的问题——这根本不是我的用例!
标签: c debugging c-preprocessor