点击右键查看原图
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyM1gTO1YzM3ETOyATM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
示例代码1
用来开发时的测试调试
我们就在想有没有一种方法,能够改一个值就可以让这些输出的语句消失(不参与编译),就可以达到一次性把所有调试语句“删除”的目录
#include <stdio.h>
//#define MY_DEBUG
#ifndef MY_DEBUG
#define LOG(a,...)
#else
#define LOG(a,...) printf(a, ##__VA_ARGS__); //就代表第二个参数是可变的,你可以传,也可以不传,传的话也可以传一个或者多个
#endif
int main(int argc, const char * argv[]) {
int a,b,c,d;
LOG(测试1,a=%d b=%d\n",a,b);//第二个参数,只传了2个
LOG("测试2\n"); //第二个参数,一个都没传
int z,x,q,v;
LOG("z=%d,x=%d,q=%d,v=%d\n",z,x,q,v);//第二个参数,传了4个
return 0;
}