catch 发表于 2014-10-16 22:42:37

__attribute__ format(printf, 1,2)的具体含义

本帖最后由 catch 于 2014-10-16 22:44 编辑

这句主要作用是提示编译器,对这个函数的调用需要像printf一样,用对应的format字符串来check可变参数的数据类型。

例如:

extern int my_printf (void *my_object, const char *my_format, ...)

__attribute__ ((format (printf, 2, 3)));

format (printf, 2, 3)告诉编译器,my_format相当于printf的format,而可变参数是从my_printf的第3个参数开始。

这样编译器就会在编译时用和printf一样的check法则来确认可变参数是否正确了。

Answer.zhang 发表于 2014-10-23 10:54:54

{:9_241:}“my_format相当于printf的format”楼主的这句话的意思是my_printf 的format 相当于printf的format吗?带三个参数的format()的原型是?

大个的糖果 发表于 2014-10-30 15:44:26

页: [1]
查看完整版本: __attribute__ format(printf, 1,2)的具体含义