我有一个示例有缺陷的程序,它应该给出一个关于未初始化变量的警告,但是当我编译它时 gcc 并没有给我任何警告。
这是代码:
#include <stdio.h>
int main()
{
int foo;
printf("I am a number: %d \n", foo);
return 0;
}
这是我运行的:cc -Wall testcase.c -o testcase
我没有得到任何反馈。据我所知,这应该产生:
testcase.c: In function 'main':
testcase.c:7: warning: 'foo' is used uninitialized in this function
在他的 C 教程中的一个类似示例中,它似乎正确地警告了 Zed Shaw )。这是我第一次尝试并注意到它没有按预期工作的示例。
有任何想法吗?
编辑:
gcc 版本:
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)