自定义警告为printf的“格式参数太多”

时间:2012-02-16 10:25:39

标签: c gcc

有没有办法告诉gcc根据参数检查函数中的参数号,类似于在使用printf时为你提供“格式参数太多”时的作用?

例如,我们是否可以使用stdarg-using方法和一些强制性参数来提供有关其当前所需参数编号的信息,并让gcc告诉我们何时出错:

calculate_mean(4, //Number of arguments
               3, 2, 1, 10); //actual parameters

calculate_mean(5,            //Custom warning from gcc because
               1, 5, 10, 2); //there is one missing argument

给予:

# gcc -c file.c -o file.o
gcc: Warning: calculate_mean: Too few arguments (5 required, 4 given)

可以从代码内部,配置文件中完成,还是在编译器中进行硬编码而不是完全可能的?

1 个答案:

答案 0 :(得分:1)

似乎对printf样式字符串的支持是硬编码到编译器中的。特别是,编译器有一个特殊的format function attribute,可用于注释printf样式函数。