ori*_*zil 15 printf gcc warnings compiler-warnings
如果我使用不好的术语,请提前道歉.
当我在gdb下编译一个C++应用程序并使用printf()时,它给出了与格式字符串的一致性和传入的参数有关的令人敬畏的警告.
例如,这段代码:
printf("%s %s", "foo");
Run Code Online (Sandbox Code Playgroud)
导致编译器警告"格式参数太少",这非常有用.它还会提供有关格式字符串类型与参数类型的警告.它必须检查格式字符串并将其与提供的参数类型进行比较. - 这种编译时内省可以添加到普通源代码中,还是需要编译成gcc本身的东西?
fwiw这是在os x的gcc 4.2.1下.
Pau*_*l R 10
您可以为自己的类似printf的函数(以及scanf/strftime/strfmon函数)执行此类操作:
#define PRINTF_FORMAT_CHECK(format_index, args_index) __attribute__ ((__format__(printf, format_index, args_index)))
void my_printf(const char *fmt, ...) PRINTF_FORMAT_CHECK(1, 2);
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅gcc手册.
| 归档时间: |
|
| 查看次数: |
2052 次 |
| 最近记录: |