我想知道是否有一种很好的方法可以避免gcc尖叫关于printf类型:'warning:format'%d'需要类型为'int'的参数,但是参数12的类型为foo'
当你知道你在某处写了'typedef int foo'时,这真是太烦人了......
当然,我不是在寻找gcc修复([-Wformat]) .
我想知道是否有一种方法可以避免警告而不是每次都进行投射!
如果你有 typedef int foo ,gcc不应该警告你 . 如果 gcc 警告你,那么 foo 确实不是一个整数 .
typedef int foo
gcc
foo
这到处都有未定义的行为 . Do not use!
char *fmt; fmt = "%d%f%p%u\n"; printf(fmt, 1, 1, 1, 1, 1, 1, 1, 1, 1); /* fill stack with values */
2 回答
如果你有
typedef int foo
,gcc不应该警告你 . 如果gcc
警告你,那么foo
确实不是一个整数 .这到处都有未定义的行为 . Do not use!