博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[c++]printf的编译器静态检测
阅读量:6849 次
发布时间:2019-06-26

本文共 402 字,大约阅读时间需要 1 分钟。

经常会用到C的格式化字符串,gcc/clang的扩展,都是可以进行字符串和可变参数的检测,不匹配,就会爆warning.

自己手写的,需要加上一点代码,否则不会进行检测.

1.  可变参数

void my_printf(const char* format, ...) __attribute__ ((format (printf, 1, 2)))

这里的1, 表示format string所在参数的下标(从1开始);

2表示可变参数开始的下标.

2. va_list

void my_print(const char* format, va_list args) __attribute__ ((format (printf, 1, 0)))

如果是va_list,那么第二个index填成0即可.

3. this call

C++这种this call,this是第一个函数成员,只要别忘了这个就行.

转载地址:http://lgeul.baihongyu.com/

你可能感兴趣的文章
python --文本文件的输入输出
查看>>
Tslib的移植【转】
查看>>
iOS开发--音乐文件播放工具类的封装(包含了音效的封装)
查看>>
如何获取一个AlertDialog中的EditText中输入的内容
查看>>
OpenGL帧缓存对象(FBO:Frame Buffer Object) 【转】
查看>>
hihoCoder_二分·归并排序之逆序对
查看>>
掩码计算工具netmask
查看>>
linux中内核的一个不错的参数somaxconn
查看>>
android自动更新软件版本
查看>>
Silverlight 引路蜂二维图形库示例:绘制各种几何图形
查看>>
浅谈HTTP中Get与Post的区别
查看>>
Sql建表和sql语句的注意事项
查看>>
asp(javascript) 判断是否post表单项
查看>>
Vector
查看>>
每日英语:Dating in China Is a Largely Commercial Transaction
查看>>
ziproxy 3.3.0 发布,HTTP代理服务器
查看>>
C++ 简单选择排序
查看>>
Lucene之删除索引
查看>>
CSS3 多列
查看>>
javaScript中eval()方法转换json对象
查看>>