declared implicitly 隐式声明,这是常见的警告:
一般是函数接口,没有在头文件中声明,
或者是在其他文件中引用了一个接口,但是没有包含该头文件,所以也会警告隐式声明。
subscript out of range 下标超出范围
这种是编译器能够检查到数组的下标,是特殊的编译器,一般的编译器不会去检查数组下标
argument of type "UINT8 *" is incompatible with parameter of type "const char *" 类型为“UINT8*”的参数与类型为“const char*”的参数不兼容
expression must be a modifiable lvalue 表达式必须是可修改的左值
comment unclosed at end of file 文件末尾未关闭的注释
warning: #1331-D: null (zero) character in input line ignored等大片警告。
应该是当初创建文件时采用的格式错误(例如先创建成的txt文件),可以创建一个新的空白文件并保存为同名的.c的格式,将源文件的源代码复制过去后,保存,并用新的文件替换掉现有的文件,重新编译,错误已经警告去除。
suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
建议在“|”[-wParenthes]的操作数中使用括号括起算术运算,这个警告是算术运算符 & 和 | 同时出现,由于是同级运算符,且没有加括号容易导致错误。
function declaration isn't a prototype [-Wstrict-prototypes]
函数声明不是原型[-Wstrict prototype], 这个是常见的函数的声明(定义函数时的格式)与调用函数时使用的函数格式不一样,常见的是函数不带参数(没有形参),这时需要将括号内声明为void
例如: int add_function()没有带形参,编译可能会有警告。 正确的声明: int add_function(void)
control reaches end of non-void function
函数接口的最后缺少返回值,比如声明了函数要返回int,但是没有return 返回,就会出现这个警告。
#if defined定义常见的几种形式
#if defined XXX
...
#endif
#if defined XXX
...
#else
...
#endif
#ifndef XXX
#define XXX
...
#endif
#if !defined XXX
...
#endif
报错是:常见的报错是最后两种格式上的区别,如果是头文件的定义,一定要用
#ifndef XXX
#define XXX
...
#endif
statement is unreachable 语句无法访问