C语言不定参数函数实现
来源:互联网 发布:js代码不显示 编辑:程序博客网 时间:2024/05/17 22:15
C语言不定参数函数实现(自己的调试函数)
C语言不定参数函数实现:
int debug_inf(const char *format, ...){va_list arglist;va_start(arglist, format);vprintf(format, arglist);/**或者用下面的代码来实现*char str[80];vsprintf(str, format, arglist);printf("%s", str);*/va_end(arglist);}
自己写程序时会加很多调试信息,当程序完成后又不想要很多的打印信息,如果一条条去删除,就会很麻烦,也很弱智,所以就要用一个宏定义来实现了:
#define DEBUG_INFint debug_inf(const char *format, ...){#ifdef DEBUG_INFva_list arglist;va_start(arglist, format);vprintf(format, arglist);/**或者用下面的代码来实现*char str[80];vsprintf(str, format, arglist);printf("%s", str);*/va_end(arglist);#endif}当程序完成,不想要打印信息时,只要删除宏就好了:
// #define DEBUG_INF
同时,也可以用宏定义来实现:
#ifdef DEBUG_INF#define debug(format, args...) (fprintf (stderr, format, ##args))#else#define debug(format, args...)#endif或者:
#ifdef DEBUG_INF#define debug(format, ...) printf(format, ##__VA_ARGS__)#else#define debug(format, ...)#endif
##的用法可以百度,如果没有##,在使用debug()时,如果有逗号[ debug("%d", i) ]时不会有错误,但是没有逗号[ debug("Hello world\n") ]时会报错:
error: expected expression before ‘)’ token #define debug(format, ...) printf(format, __VA_ARGS__) ^test.c:31:2: note: in expansion of macro ‘debug’ debug("Hello world\n");
完成。
复制去Google翻译翻译结果
调试(“%d个”,我)
0 0
- C语言不定参数函数实现
- C语言不定参数函数的实现
- c语言不定参数函数
- c语言不定参数与printf函数的实现
- C语言函数参数不定的例程
- 函数传递不定参数理解-c语言
- C语言不定参数的函数
- C语言不定参数函数编写
- c语言实现不定参数调用
- va_list实现不定参数C函数
- va_list实现不定参数C函数
- va_list实现不定参数C函数
- C语言不定参数
- C语言不定参数
- C语言不定参数
- C语言不定参数
- 不定参数函数实现
- 不定参数函数实现
- 关于TOAD使用instantclient的设置
- android Handle
- HTML5资源教程
- 第九周项目一~~~一目二目运算符重载和<<与>>的重载
- js去字符串空格(包括去前后空格和中间空格)
- C语言不定参数函数实现
- Mysql date、datetime、timestamp 区别和联系
- java编译挨包
- IE6/IE7下float:right的导致元素换行显示
- Nosql Mongodb之旅(3)
- 白盒子测试方法
- java通过反射获取List中的泛型
- 解决非Unicode编码的软件多语言版本在日语、韩语环境下的乱码问题
- CentOS 安装JDK