UESTC 2013.3.11
18.2 编译警告消息 下表列出了编译警告消息
编号警告消息建议
0 Macro ?name? redefined 宏 ?name?被 重新定义
用#define 定义的符号被用不同的参数 或形式表重新定义
1 Macro formal partameter ?name? is never referenced 宏形式参数 ?name? 被重新定义
#define 形式参数从未在参数字符串中 出现
2 Macro ?name? is already#undef 宏 ?name?被重新定义
#undef 被用于不是宏观的符号
3 Macro ?name? called with empty
parameter(s) 用空参数调用宏 ?name? 用零长度(zero-length)的参数不清调 用在#define 中定义的参数化宏观
4 Macro ?name? is called recursively; not expanded 宏 ?name? 被递归调用 不扩展
递归宏调用使预处理器停止该宏的进一 步扩展
5 Undefined symbol ?name? in #if or #elif; assumed zero 在#if 或#elif 中未定义的符号 ?name?;假设为零 在#if 或#elif 表达式中把非宏符号作 为零来处理被认为是错误的编程实践 使用以下两个中任一个#ifdef symbol 或#if defined(symbol)
6 Unkown escape seguence ?\\c? ;assume? c? 未知的转义序列?\\c? 假设为?c? 在字符常数中发现反斜杠\\ 或字符 文字后随未知的转义字符
7 Nested comment found without using the?c? option 发现嵌套的注释未使用?c? 选项
在注释中发现字符序列
无条件转移或返回在一条或多条语名之 前使得这条或多条语句从来不会被执 行
21 Unreachable statement(s) at
unreachable label ?name? 在未卜先知 被引用的标号?name?处不能到达的语句 例如
Break; Here: I=2;
无条件转移或返回在有标号的一条或多 条语句之前但是标号从未被引用所 以这条或多余语句从来不会被执行
22 Non-void function: explicit “return”
这可能是从循环或开关语句中非预期的 退出注意不带default 的开关语句 总是被编译器当作可退出的而不管 case 的结构如何
23 Undeclared function ?name?; assumed “extern” “int” 未声明的函数?name?; 假设为“extern” “int”
对未声明函数的引用导致使用缺省的声 明函数被假设为具有K&R 类型具有 外部存储类别并返回int 整型 24 Static memory option converts local “auto” or “register” to “static”(静 态存储器选项把局部 “auto”或 “register”转换为 “static”)
用于静态存储器分配的命令行选项使 auto 自动和register 寄存器声 明被当作static 静态来处理
25 Inconsistent use of K&R functionvarying number of parameters(K&R 函 数的不一致使用-改变了参数的数目) 用改变了的参数类型调用K&R 函数
26 Inconsistent use of K&R functionchanging type of parameter K&R 函数
用改变了的参数类型调用K&R 函数 MSP430 系列C 编译器编程指南
利尔达电子中国有限公司 TEL 0571-88800000 FAX 0571-88805970 - 116 - 的不一致使用改变了参数的类型 例如 myfunc(34); myfunc(34.6);
27 Size of “extern” object ?name? is unknown 外部对象?name?的大小未知 Extern 外部数组应当用size 声明 28 Constant [index] outside array bound 常数[索引]超出数组边界
存在超出已声明数组边界的常数索引 29 Hexadecimal escape sequence larger than “char” 十六进制转义序列大于
“char”
转义序列被截断以适合于放入char 字 符中
30 Attribute ignored 属性被忽略 例子
因为const 常量或volatile 易失 的是对象的属性所以当它们与 structure 结构,union 联合或
enumeration(枚举)标签定义一起给出 时将被忽略上述定义没有和对象同时 声明而且函数被认为不能返回const 或volatile
31 Incompatible parameters of K&R functions K&R 函数的参数不兼容在 下列范围之一使用指针
指向函数的指针可能是间接的或K&R 函数声明具有不兼容的参数类型
32 Incompatible numbers parameters of
K&R functions(K&R 函数的参数数目不兼 容)在下列范围之一使用指针
指向函数的指针可能是间接的或K&R 函数声明具有不同数目的参数
33 Local or formal ?name? was never 在函数定义中未使用形式参数或局部变 referenced(局部或形式参数?name?从未被引用) 量对象
34 Non-printable character ?\\xhh? found in literal or character constant 在
文字或字符常数中发现不可打印字符号 ?\\xhh?
在字符串文字或字符常数中使用不可打 印non-printable 字符被认为是一 种不好的编程习惯为了得到同样的结 果可使用?\\0xhhh?
35 Old-style(K&R) type of function
declarator (老式(K&R)类型的函数声明) 发现老式(K&R)函数声明只有正在使 用-gA 选项时才发出这种警告 36 Floating point constant out of range(浮点常数超出范围)
浮点值太大或太小以致不能使用目标的 浮点系统来表示