Keil常见错误汇总及处理方式

1、

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

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

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

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

2、

warning: #177-D:variable "i" was declared but never referenced

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

影响:没有使用的变量,很容易提高代码出错的概率,还浪费了一些栈空间。

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

3、

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

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

影响:如果值超过了枚举类型的值,可能造成数据丢失。 改正:尽量避免这样的操作。

4、

warning: #223-D: function "Set_RX8025_INT" declared implicitly

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

影响:具体影响不是很清楚。

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

5、

warning: C3017W: i may be used before being set

解释:变量i或许在赋值前使用

影响:很有可能是漏掉了,某些情况,可能造成使用变量的随机值。

改正:在使用前将变量赋初值,对于这种警告,尽量消除。

6、

warning: #167-D:argument of type "uint8_t *" is incompatible with parameter of type "const char *restrict" require.async([‘wkcommon:widget/ui/lib/sio/sio.js‘], function(sio) { var url = ‘https://cpro.baidustatic.com/cpro/ui/c.js‘; sio.callByBrowser( url, function () { BAIDU_CLB_fillSlotAsync(‘u2845605‘,‘cpro_u2845605‘); } ); });

解释:uint8_t *类型的参数与const char * restrict类型的参数不兼容。参数传递时,不同类型的警告。

影响:可能提高代码的bug率。

改正:首先避免这样做,其次如果避不开要详细检查传入的参数。

7、

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

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

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

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

8、

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

解释:无符号整形和0的无意义比较

影响:一个潜在的问题,判断无符号数大于等于0。由于无符号数没有负数,这种判断恒为真。

改正:详细查看代码的意图,消除这样的判断。

9、

warning: #940-D: missing return statement at end of non-void function "fun1"

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

影响:不是很了解。

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

10、

warning: #111-D: statement is unreachable

解释:语句执行不到

影响:由于前边的代码造成此段代码,永远不会执行到。

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

11、

warning: #1-D: last line of file ends without a newline 解释:文件最后一行缺少一新行。

(window.cproArray = window.cproArray || []).push({ id: "u3054369" });

影响:避免当被include的文件展开时,前一个文件的最后一行与后一个文件的第一行直接连接成一行,造成错误。

改正:一般一个.c .h文件,要在最后留一个空行。

原文地址:https://www.cnblogs.com/itdoy/p/9166218.html

时间: 2024-08-06 08:09:46

Keil常见错误汇总及处理方式的相关文章

李洪强iOS开发之OC常见错误汇总

// //  main.m //  16 - 常见错误汇总 // //  Created by vic fan on 16/7/13. //  Copyright © 2016年 李洪强. All rights reserved. // OC的常见错误汇总: 1 @interface ... @end  和 @implementation ..@end 之间不能嵌套 2只有类的声明没有类的实现 3 漏写@end 4 两个类的声明顺序可以打乱,但是类的声明一定要在类的实现前面 5 成员变量没有放在

eclipse远程debug服务器上的项目(Tomcat),打开、关闭及常见错误汇总

我们工作中,有时候测试/生产环境,出现的结果会与我们预计的不一样,只看代码又看不出去问题所在,这个时候就需要远程debug下服务器上的项目. 注意:(1)需要debug的代码,本机代码需与服务器上一致.(2)保证服务器下开了允许远程debug的端口 一.打开远程debug 1.右击要debug的项目,Run As ->Debug Configurations,找到Remove Java Application,如下: 填下远程主机IP和端口 备注:如何找预留的debug端口:一般而言,找到对应项

hadoop 常见错误汇总

1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out Answer: 程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了. 修改办法: 修改2个文件.        /etc/security/limits.conf vi /etc/security/limits.conf 加上: * soft nofile 102400 * h

MyEclipse常见错误汇总,中英注释版(长期更新)

No.1 当一条语句漏写分号时错误描述如下 Syntax error, insert ";" to complete Statement(语法错误:插入分号完成语句描述) No.2 当漏写双引号的时候错误描述如下      你好cannot be resolved(你好 不能被解析)

ASP.NET开发网站程序常见错误汇总

数据库连接超时篇若要知道数据库连接超时问题,先看下面一段代码:[Sample-01]: Public Shared Function getOEMPN(ByVal psPN As String, ByRef OEMPN As String) As BSResult 0001 Dim clsResult As New BSResult 0002 Try 0003 clsResult.ResultID = -1 0004 Dim dtResult As New DataTable 0005 Dim

分布式进阶(十一) 常见错误汇总

NO.1 以上添加网桥的命令在Ubuntu14.04中是不可行的.正确的命令如下: brctl addbr br0 ifconfig br0 192.168.1.188 netmask 255.255.255.0 NO.2 造成以上错误的原因是Docker daemon守护进程默认不启动,这也蛮奇葩的,按照提示启动deamon: $ sudo HTTP_PROXY=http://proxy.host:port/ docker -d 执行以后这个窗口变成了一个记录deamon日志的窗口,不可以输入

NHibernate常见错误汇总

NHibernateSample.Data.Test.QueryHQLFixture.WhereTest: NHibernate.Hql.Ast.ANTLR.QuerySyntaxException : 引发类型为"Antlr.Runtime.NoViableAltException"的异常. near line 1, column 7 [select from   NHibernateSample.Domain.Entities.Customer c where c.Firstnam

Gitolite 常见错误汇总

#1.错误1:在执行 git clone [email protected]:gitolite-admin 提示仓库不存在,或者没有权限. 于是以为别人的文档写的不对,因为真是的 git 仓库是在你当时执行,gitolite setup -pk $HOME/scott.pub 命名时候的用户 home目录下面的 repositories 文件夹下,当然可以指定,于是就想当然的执行以下命令: git clone [email protected]:/home/YourName/gitolite-a

vscode常见错误汇总(长期更新)

1.错误提示 Q:不是每一个红波浪线都是错误,都需要修改 A: 看下面这个地方: 这里的from确实标记了红色波浪线,鼠标放上去还有提示: 但是,这里并不需要修改,因为pep8检查很严格,我们这里前面是针对整个工程,把工程目录添加到了环境变量在前,所以这里不需要修改. 这里可以简单记作:只有运行python脚本的时候运行失败了,才是必须要修改的错误. 其他提示:比如空多少行,空多少格,单行字符串字数过多等,都可以课上的说明为主,忽略多余的警告提示. 2.插件安装 默认Py开头的,在需要时候会有提