而-Wsequence-point选项恰恰可以帮我们这个忙,它可以帮我们查出这样的代码来,并给出其警告。 /** test_sequence_point.c * gcc -Wsequence-point test_sequence_point.c*/#include<stdio.h>intmain() {inti =12; i= i--; printf("the i is %d\n", i);return0; } gcc -Wsequence-point test_seq...
This enables some extra warning flags that are not enabled by -Wall.(This option used to be called -W. The older name is still supported, but the newer name is more descriptive.) -Wclobbered -Wempty-body -Wignored-qualifiers -Wmissing-field-initializers -Wmissing-parameter-type (C only)...
[-Wimplicit] 该警告选项实际上是-Wimplicit-int和-Wimplicit-function-declaration两个警告选项的集合。前者在声明函数却未指明函数返回类型时给出警告,后者则是在函数声明前调用该函数时给出警告。 e.g. /* * test_implicit.c */ #i nclude add(int a, int b) { //函数没有声明返回类型 return a + ...
test.c: In function ‘main’:test.c:10:8: warning: suggest braces around empty body in an ‘if’ statement[-Wempty-body] if(i);从上面的警告清楚的看到,-Wextra 选项从内部启用了-Wempty-body 选项,从而可以检测可疑代码并生成警告。下面是这个选项启用的全部警告标记。-Wclobbered-Wempty-body-W...
[-Wcomment] 当'/*'出现在 '/* ... */'注释中,或者'\'出现在'// ...'注释结尾处时,使用-Wcomment会给出警告。不要小觑这些马虎代码,它很可能会影响程序的运行结果。如下面的例子: e.g. /* * test_comment.c * gcc -Wcomment test_comment.c ...
[-Wcomment] 当/*出现在/*...*/注释中,或者\出现在//...注释结尾处时,使用-Wcomment 会给出警告。不要小觑这些马虎代码,它很可能会影响程序的运行结果。如下面的例子: e.g. /* *test_comment.c *gcc-Wcommenttest_comment.c */ #include ...
-Werror:该标志将警告视为错误,使编译器在遇到警告时停止编译过程。 4.预处理器Flag 预处理器标志负责处理源代码中以#开头的指令。这些标志定义宏并控制编译。 一些常用的预处理器标志包括: -D:该标志用于在编译过程中定义宏。例如,-DDEBUG可用于定义DEBUG宏,根据其是否存在启用条件编译。
1、gcc 常见的编译警告与错误(按字母顺序排列)C语言初学者遇到的最大问题往往是看不懂编译错误,进而不知如何修改程序。有鉴于此,本附录罗列了用gcc编译程序时经常出现的编译警告与错误。需要提醒读者的是,出现警告(warning)并不影响目标程序的生成,但出现错误(error)则无法生成目标程序。为便于读者查阅,下面列出了...
但是如果同时使用-Wextra 选项来进行编译:gcc -Wall -Wextra test.c -o test 会生成下面这样一个警告: test.c:In function‘main’:test.c:10:8:warning:suggest braces around empty body in an ‘if’ statement [-Wempty-body]if(i); 从上面的警告清楚的看到,-Wextra 选项从内部启用了-Wempty-body ...
GCC是海湾阿拉伯国家合作委员会的英文(Gulf CooperationCouncil)缩写。其成员国为沙特阿拉伯、科威特、阿拉伯联合酋长国、卡塔尔、阿曼苏丹王国和巴林王国6国。海湾合作委员会六个成员国政治、经济体制和发展水平相似,在政治、经济、外交、国防等方面有很多共同的利益,是中东地区一个重要的政治经济组织。GCC成员国主要资源为...