C语言编译常见警告

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

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值