我按照在线教程,想用它#undef
来设计我的调试输出功能。我写了一个debugOut.h
文件。内容如下:</p>
#include <stdio.h>
#define NOOP //(void(0))
#undef DEBUG_PRINT
#if DEBUG_OUT
#define DEBUG_PRINT printf
#else
#define DEBUG_PRINT(...) NOOP
#endif
#undef DEBUG_OUT
然后我写了一个main函数来测试我的设计是否正确。
#include<iostream>
#include "Header/debug_out.h"
#define DEBUG_OUT
int main(){
DEBUG_PRINT("module1 debug...\n");
printf("hello,world");
}
但输出结果只有hello, world
. 为什么我定义#define DEBUG_OUT
,为什么DEBUG_PRINT
不替换为printf
我是根据在线教程编写的。我想基于此为 c++ 编写一个输出函数。但是在句子#define DEBUG_PRINT(...) NOOP
中,(...)
代表什么?有什么办法可以输出宏定义被替换的内容吗?