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      语句无法访问

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐