C 自定义警告为printf';s";“格式”的参数太多;
有没有一种方法可以告诉gcc根据函数的参数检查函数中的参数号,类似于在使用printf时给您提供“太多格式参数”时所做的操作 例如,我们可以有一个stdarg-using方法,该方法带有一些强制参数,可以提供当前所需参数号的信息,并让gcc告诉我们错误的时间:C 自定义警告为printf';s";“格式”的参数太多;,c,gcc,C,Gcc,有没有一种方法可以告诉gcc根据函数的参数检查函数中的参数号,类似于在使用printf时给您提供“太多格式参数”时所做的操作 例如,我们可以有一个stdarg-using方法,该方法带有一些强制参数,可以提供当前所需参数号的信息,并让gcc告诉我们错误的时间: calculate_mean(4, //Number of arguments 3, 2, 1, 10); //actual parameters calculate_mean(5,
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)
它可以从代码内部、配置文件中完成,还是在编译器内部硬编码而根本不可能完成?对
printf
样式字符串的支持似乎是硬编码到编译器中的。特别是,编译器有一个特殊的功能,可以用来注释printf
风格的函数。我对此表示怀疑,但这是一个有趣的问题,也许您可以创建一个。谢谢!我想属性格式(原型,字符串索引,首先检查)
就是我要找的。不过,我找不到关于参数编号的任何属性。