一个fprintf的简单封装实例(vsprintf,va_start(),+va_arg(),+va_end()可变参数列表)
2011-10-13 15:05
597 查看
对于不方便进行调试的程序,最好的方法,就是将调试信息写入文件了。
下面是一个简单的实例,仅供参考。
程序代码:
输出:
欢迎大家关注我的微信公众号:
微信公众号:sn0wdr1am
下面是一个简单的实例,仅供参考。
程序代码:
#include <string.h> #include <stdio.h> #include <stdarg.h> #ifndef DEBUG #define DEBUG #endif int LOG2F(const char *format,...) { int ret = 0; #ifdef DEBUG FILE* fp = NULL; fp=fopen("log.txt","a+"); if(fp != NULL) { va_list args; va_start(args,format); vfprintf(fp,format,args); va_end(args); fflush(fp); } else { ret = 1; } if(fp != NULL) { fclose(fp); fp = NULL; } #endif return ret; } int main() { char *str = "It is a Log test program!"; int ix = 10; float fx = 2.0; LOG2F("%s %d %f\n",str,ix,fx); return 0; }
输出:
It is a Log test program! 10 2.000000
欢迎大家关注我的微信公众号:
微信公众号:sn0wdr1am
相关文章推荐
- fprintf 的封装(vsprintf,va_start(), va_arg(), va_end()可变参数列表)
- fprintf 的封装(vsprintf,va_start(), va_arg(), va_end()可变参数列表)
- fprintf 的封装(vsprintf,va_start(), va_arg(), va_end()可变参数列表)
- 编写一个可变参数的C函数——头文件stdarg.h中宏va_start ,va_arg和va_end的应用
- 可变参数列表(va_list,va_arg,va_copy,va_start,va_end)
- 可变参数列表(va_list,va_arg,va_copy,va_start,va_end)
- 可变参数列表(va_list,va_arg,va_copy,va_start,va_end)
- 编写一个可变参数的C函数——头文件stdarg.h中宏va_start ,va_arg和va_end的应用
- C/C++中用va_start/va_arg/va_end实现可变参数函数的原理与实例详解
- 编写一个可变参数的C函数——头文件stdarg.h中宏va_start ,va_arg和va_end的应用
- va_start ,va_arg和va_end的可变参数应用
- C语言:va_start、va_end、va_arg 实现可变长参数
- 深入C语言可变参数(va_arg,va_list,va_start,va_end,_INTSIZEOF)
- 如何获取函数的可变参数(va_list, va_start, va_arg, va_end)
- 可变参数va_start,va_arg,va_end的用法
- C语言可变参数 va_start, va_arg, va_end使用介绍
- C语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义
- 可变参数的函数,va_start(), va_arg(), va_end()
- va_start,va_arg,va_end 可变参数的总结
- C语言函数之可变参数原理:va_start、va_arg及va_end !!!!!!和printascii在kernel启动前的应用