默认情况下,gcc
以相当宽松的模式运行。您可以通过添加来获得警告,例如:
gcc -Wall -c yourfile.c
要求所有主要警告。(有更多的警告可以作为:-Wextra
添加一堆。)您还可以指定-std=c99
(并且可能-pedantic
)以获得更多警告。
C99 要求在使用函数之前定义或声明函数。
$ gcc -O3 -g -std=c99 -Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition -c warn.c
warn.c:4:5: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
warn.c: In function ‘main’:
warn.c:4:5: warning: old-style function definition [-Wold-style-definition]
warn.c:9:4: warning: implicit declaration of function ‘isgraph’ [-Wimplicit-function-declaration]
warn.c:10:4: warning: implicit declaration of function ‘isupper’ [-Wimplicit-function-declaration]
warn.c:9:8: warning: unused variable ‘g’ [-Wunused-variable]
$
这是 GCC 4.7.1(在 Mac OS X 10.7.5 上)的输出,带有我使用的标准编译选项集——在你的源代码上运行,存储在一个文件中warn.c
。