IAR MSP430编译报错说明 下载本文

37 Illegal float operation :division by zero not allowed(非法浮点运算不允 许除以零)

在常数算术运算时发现除零 38 Tag identifier ?name? was never defined(从未定义标签识别符?name?)

39 Dummy statement. Optimized away! 发现多余的代码这通常表示用户代码 中打印错误或可能产生于使用有点不太 通用的宏时这不是错误 例如 a+b

40 Possible bug! “if” statement

terminated(可能是缺陷if”语句被中 止)

这通常表示用户代码中的打印错误例 如 if (a= =b); {

}

41 Possible bug! Unintialized variable 可能是缺陷未初始化的变量 在初始化之前使用变量变量具有随机 值 例如 void func(p1) {

short a; p1+=a; }

42 止消息被废弃

43 Possible bug! Integer promotion may cause problems. Use cast to avoid it 可能是缺陷整数提升可能产生问题 使用cast 以避免此问题 例如

整数提升规则指出所有整数运算必须产 生这样的结果当它们具有比int 整 型低的精度时就好像它们是int 整 型一样这有时可能导致未预期的结 果

MSP430 系列C 编译器编程指南

利尔达电子中国有限公司 TEL 0571-88800000 FAX 0571-88805970 - 118 -

此例将始终返回1 即使对于数值0xff 也是如此其原因是整数提升首先使变量a 变为0x00ff 然后执行位非bit not

整数提升被许多其他C 编译器所忽略因此当用IAR 系统编译器重新编译已有的程 序时可能产生此警告

44 Possible bug! Single ?=? instead of ?= =?used in “if” statement 可能是缺陷 在 “if”语句中用?= =? 代替单个?=? 这通常表示用户代码中的打印错误 例如 if (a=1) {

}

45 Redundant expression.

Example:multiply with 1. Add with 0(多 余的表达式例如乘以1 加上0)

这可能表示用户代码中的打印错误但 是它也是可能是由case 工具产生的 错误代码的结果

46 Possible bug! Strange or faulty expression. Example: division by zero 可能是缺陷奇怪或错误的表达式 例如除以零

这通常表示用户代码中的缺陷 47 Unreachable code deleted by the global optimizer 由全局优化删除不 能到达的代码 例如除以零

在用户代码中多余的代码块它可能是 bug 缺陷的结果但通常仅是不完 善代码的信号

48 Unreachable returns. The function will never return 不能到达的返回 函数将永远不返回

函数将永远不能返回到调用的函数这 可能是程序缺陷的结果但通常当在

RTOS 系统中具有永不结束循环时产生 49 Unsigned compare always true/false 无符号的比较总是为真/假

这表示用户代码中的缺陷通常的原因 是遗漏了-c 编译器开关

例如

for (uc=10; uc>=uc--); {

}

因为无符号的值永远大于或等于零所 以这是永不结束的循环

50 Signed compare always true/false 有 符号的比较总是为真/假 这表示用户代码中的缺陷