C++ ifdef用于重复行

jos*_*130 3 c++ macros comments c-preprocessor

我有很多printfs我想要评论,并能够以灵活的方式再次取消注释.我在想这样的解决方案:

#define SOMETHING
...

#ifdef SOMETHING
printf(....
#endif
Run Code Online (Sandbox Code Playgroud)

但是一个薄弱的部分是我必须为每个printf做这件事.第一个问题,有人知道更有效的方法吗?如果是这样,请以一些片段为例,因为对于预处理器和宏定义,我是初学者.

第二个问题,我可以对couts做同样的事情,如果没有,那么他们也会有什么解决方案呢?

Cap*_*ous 6

您可以使用一个简单的宏来完成此操作,该宏允许您完全删除printf语句.

#ifdef PRINT_DATA
#define PRINT(x) printf x
#else
#define PRINT(x)
#endif


void test()
{
    PRINT(("Entering test\n"));
}
Run Code Online (Sandbox Code Playgroud)