有没有办法告诉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)
可以从代码内部,配置文件中完成,还是在编译器中进行硬编码而不是完全可能的?
答案 0 :(得分:1)
似乎对printf
样式字符串的支持是硬编码到编译器中的。特别是,编译器有一个特殊的format
function attribute,可用于注释printf
样式函数。