gcc警告和错误选项
-ansi
该选项不能保证没有警告的程序就是遵循ANSI C标准,如,该选项会对返回值为void的main函数发出警告,但它会忽略GNU语法扩展的数据类型long long而不发出警告。
-pedantic
允许gcc发出遵循严格ANSI C标准语法的所有警告。如,对数据类型long long发出警告。
-pedantic-errors
将警告当成错误处理
-Wimplicit-function-declaration
提示定义了函数但没有事先声明或包含头文件
-Wreturn-type
提示声明的函数可能没有指定返回类型,此时默认为int
-Wcomment
注释嵌套警告(连接两个/*)
-Wformat
printf及其相关函数的参数和格式字符串中指定的类型不匹配
-Wmain
关于main函数的警告
-Wparentheses
如(n==10)写成(n=10)
-Wswitch
switch语句少了一个或多个枚举值的case分支(只有索引值是enum类型时有效)
-Wunused
声明的变量没有使用,或static函数没有使用到
-Wuninitialized
自动变量没有初始化(必须与-O一起使用)
-Wundef
在#if宏中使用未定义的变量作判断
-Winline
如果函数不能被内联则警告
-Wmissing-declarations
全局函数没有在任何头文件中声明
-Wlong-long
使用了long long类型
该选项不能保证没有警告的程序就是遵循ANSI C标准,如,该选项会对返回值为void的main函数发出警告,但它会忽略GNU语法扩展的数据类型long long而不发出警告。
-pedantic
允许gcc发出遵循严格ANSI C标准语法的所有警告。如,对数据类型long long发出警告。
-pedantic-errors
将警告当成错误处理
-Wimplicit-function-declaration
提示定义了函数但没有事先声明或包含头文件
-Wreturn-type
提示声明的函数可能没有指定返回类型,此时默认为int
-Wcomment
注释嵌套警告(连接两个/*)
-Wformat
printf及其相关函数的参数和格式字符串中指定的类型不匹配
-Wmain
关于main函数的警告
-Wparentheses
如(n==10)写成(n=10)
-Wswitch
switch语句少了一个或多个枚举值的case分支(只有索引值是enum类型时有效)
-Wunused
声明的变量没有使用,或static函数没有使用到
-Wuninitialized
自动变量没有初始化(必须与-O一起使用)
-Wundef
在#if宏中使用未定义的变量作判断
-Winline
如果函数不能被内联则警告
-Wmissing-declarations
全局函数没有在任何头文件中声明
-Wlong-long
使用了long long类型