sprintf 实例
来源:互联网 发布:重庆市设计院知乎 编辑:程序博客网 时间:2024/05/16 06:37
文章出处:http://blog.csdn.net/shift_wwx
sprintf 在填充buffer 的时候,可能需要将buffer 一并的打印出来,一般情况sprintf 之后加个log 就可以了,但是碰到很多应用sprintf的地方就很累了,可以包装起来。
#define SQL_DEBUG 0#define getSqlParams(func, buffer, args...) \ do{\ sprintf(buffer, ##args);\ if(SQL_DEBUG){\ LOGD("getSqlParams for %s\n", func);\ LOGD("%s = %s\n",#buffer, buffer);\ }\ }while(0)或者是多加一个函数做一些补充的事情:
#define getSqlParams(func, buffer, args...) sprintf(buffer, ##args);\ temp_add(func, buffer)
宏定义中的省略号就是指一串数目不限的参数列表,前面用args只有为了后面引用这串参数.
至于省略号的用法可以看一下:函数参数中带省略号的用法
来看一下sprintf 的source code:
intsprintf(char *str, const char *fmt, ...){ int ret; va_list ap; FILE f; struct __sfileext fext; _FILEEXT_SETUP(&f, &fext); f._file = -1; f._flags = __SWR | __SSTR; f._bf._base = f._p = (unsigned char *)str; f._bf._size = f._w = INT_MAX; va_start(ap, fmt); ret = __vfprintf(&f, fmt, ap); va_end(ap); *f._p = '\0'; return (ret);}进_vfprintf 一看,还是有的晕乎的,后期研究了~~
0 0
- sprintf 实例
- c++:sprintf应用实例
- sprintf()函数标准化输出实用实例
- sprintf
- sprintf
- sprintf
- sprintf
- sprintf
- sprintf()
- sprintf
- sprintf
- sprintf
- sprintf
- sprintf
- sprintf
- sprintf
- sprintf
- Sprintf
- git 常用指令
- SpringMVC返回json数据的三种方式
- boost读写锁实现
- Extjs gridPanel对选中行的操作
- 从编辑框读数的技巧
- sprintf 实例
- 机器学习资料大汇总
- 【读书笔记】《Android多媒体开发高级编程》(一)
- Android GPS学习笔记(2)—重要结构体及接口
- Android开发TextView实现长按复制文本功能的方法
- 沙盒目录
- 【总结】10月训练赛第3场(南开)
- [免费在线培训]RAD Studio 第 4 季培训课程----主讲RAD Studio 10 Seattle
- C/C++编译出现error: stray ‘\342’ in program