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

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

例如:
extern int myprintf (void *other, const char *fmt, ...)
__attribute__ ((format (printf, 2, 3)));

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

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

你可能感兴趣的:(__attribute__ ((format (printf, 2, 3)));)