1. 使用宏的方式注释掉所有的printf
#define printf(…)
2.printf原型解析
对于可变参数的函数可以,使用下面的宏来,获取输入的每一个参数
这些宏定义在stdarg.h中
typedef char *va_list;
va_start宏,返回值获取可变参数列表的第一个参数的地址(list是类型为va_list的指针,指向第一个可变参数,param1指向常量字符串的首地址,即定位位置):
#define va_start(list,param1) ( list = (va_list)¶m1+ sizeof(param1) )
**va_arg宏,**返回当前可变参数的值,即取值,并将指针指向下一可变参数(mode参数描述了当前可变参数的类型):
#define va_arg(list,type) ( (type *) ( list += sizeof(type) ) )
它的第一个参数是list,第二个参数是要获取的可变参数的类型,然后返回这个可变参数的值,并且把 list的位置指向变参表的下一个变量位置
va_end宏,清空va_list可变参数列表:
#define va_end(list) ( list = (va_list)0 )