KEIL常见编译错误和警告解决方案汇总

写在开头

本文主要汇总在使用KEIL的开发过程中,遇到的一些编译错误和警告的处理方法,自己作为一个记录,同时分享给各位有缘人,希望有所帮助!!谢谢~

正文

[ warning: #186-D: pointless comparison of unsigned integer with zero … ]

这个警告是因为将一个无符号数与0作比较,比如uint32_t a; if(a>=0)
这种情况很明显,无符号数当然大于或等于0,因此这个比较是毫无意义的,需根据实际情况作修改

[ warning: #223-D: function “Set_RX8025_INT” declared implicitly ]

解释:Set_RX8025_INT 函数使用前没有显示声明。

改正:在使用前显示声明下。

[ warning: #177-D:variable “i” was declared but never referenced ]

解释:变量 i 定义了,但是没有使用

影响:没有使用的变量,浪费了一些栈空间。

改正:对于这个警告, 感觉应该修改代码直到没有。确定每一个变量都用到了, 没有用到的注释掉,如果需要存在则在函数中调用下。

[ warning: #767-D: conversion from pointer to smaller integer ]

解释:将指针转换为较小的整数

影响:可能造成的影响:容易引起数据截断,造成不必要的数据丢失。如果出现 bug,很难调试。

改正:尽量避免这种转换,避免不了要确定转换的数据不会引起数据丢失。

[ warning: #188-D: enumerated type mixed with another type ]

解释:枚举类型混合了其他类型

影响:如果值超过了枚举类型的值,可能造成数据丢失。

改正:尽量避免这样的操作。

[ warning: #111-D: statement is unreachable ]

解释:语句执行不到

影响:由于前边的代码造成此段代码,永远不会执行到。比如while(1);后面的语句行。

改正:应该查看此种警告,确定是我们需要的。并且尽量将此种警告消除。

[ warning: #940-D: missing return statement at end of non-void function “fun1” ]

解释:非 void 型函数缺失返回语句。有返回值的函数,缺少了 return 语句。也有可能是在函数体中有但是最后一行没有。

影响:函数定义不规范,对该函数上层不友好。

改正:在非 void 类型函数的最后一行添加 return 语句。

[ warning: #69-D: integer conversion resulted in truncation ]

解释:整数转换导致数据截断

影响:可能造成数据丢失,出现错误。

改正:关于这种警告,应该详细考虑。确定转换都在预期的结果内。

持续更新…

  • 9
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾爱技术圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值