У меня есть пример ошибочной программы, которая должна выдавать ровно одно предупреждение о неинициализированной переменной, но когда я ее компилирую, 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). Это пример, который я впервые попробовал и заметил, что он работает не так, как ожидалось.
Любые идеи?
ИЗМЕНИТЬ:
Версия gcc:
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
;-)
. - person rubenvb   schedule 11.05.2012