第4部分TC开发环境中的常见提示信息
4.1 提示信息综述
在TC集成环境中,提示信息的基本形式有两类:
(1) Error FFF NN:MMM in function YYY
(2) Warning FFF NN:MMM in function YYY
提示信息的基本含义是:“对FFF源程序文件进行编译时,在YYY函数的第NN行存在MMM的问题”。Error是无法翻译的严重错误,编程者必须修改这一类错误;Warning则是警告或者提醒,告诉编程者:这里有潜在的问题。Warning型的提示表明系统可以对源程序中的相应写法进行翻译,但很可能编程者是另一种意图。比如在if语句的条件表达式部分把“==”写成“=”就会出现warning型提示。以下只对提示信息部分(即上述格式中的MMM)加以说明,并不区分Error和Warning两类情况。
另外,提示信息中的NN只表示编译系统在处理到第NN行时出现了问题,而不表示问题一定出现在第NN行。比如,对于下面的两行:
x=1
y=2;
编译系统会指出有一个Error:“Statement missing ;”,批示的位置是在下面一行的变量y,而实际上错误发生在上一行的末尾——缺少分号。因此,编程者看到提示信息后,应检查第NN行及其以前的行。
4.2 提示信息注解
# operator not followed by macro argument name
【含义】#运算符的后面没有跟宏参数名
【说明】可能是用#define定义宏时,写法不符合规定的格式
××× statement missing (
【含义】×××语句缺少左括号
【说明】可能是类似for、while等保留字的后面漏掉了左括号
C语言与程序设计
××× statement missing )
【含义】×××语句缺少右括号
【说明】可能是类似for、while等语句漏掉了右括号
'×××' declared but never used
【含义】(程序中)定义了×××但从未使用
'×××' is assigned a value which is never used
【含义】×××被赋了值但从未使用该值
【说明】这是常见的警告类信息,程序中可能在所指明的变量中存放了一定的数据,但后续程序中从不使用这些数据
'×××' not an argument
【含义】
'×××' not part of structure
【含义】
Argument '×××' missing name
【含义】第'×××'个参数没有名字
【说明】编写函数定义时,函数首部的每个形参必须有具体的名字
Argument list syntax error
【含义】参数表语法错误
【说明】可能是编写函数定义时,函数首部的形参不符合规定的格式
Array bounds missing ]
【含义】数组下标缺少右]
Array size too large
【含义】数组太大
【说明】试图定义一个数组,而该数组所需要的字节数超过了系统能够处理的范围
Bad file name format in include directive
【含义】include预处理指令中的文件名格式不正确
【说明】#include后面的文件名没有加双引号/尖括号
第4部分TC开发环境中的常见提示信息Bad ifdef directive syntax
【含义】#ifdef预处理指令的格式不正确
Bad ifndef directive syntax
【含义】#ifndef预处理指令的格式不正确
Bad undef directive syntax
【含义】#undef预处理指令的格式不正确
Both return and return of a value used
【含义】(函数中)既使用了return又使用了return(表达式)
【说明】处理型(void)函数中通常不需要return语句,且不允许使用“return(表达式)”的形式;求值型函数总是需要至少有一条“return(表达式)”语句指出函数的返回值如何得到。出现该提示信息可能是在求值型函数中既使用了“return;”又使用了“return(表达式);”
Call of non-function
【含义】调用的不是函数
【说明】试图以“函数名(……)”的形式调用某个函数,但其中的函数名不正确
Cannot modify a const object
【含义】不能修改常量对象
【说明】某个标识符被定义为常量,而程序中又试图对它赋值
Case outside of switch
【含义】case在switch语句范围之外
【说明】检查switch语句是否符合规定的格式,尤其是{与}是否对应
Case statement missing :
【含义】case分支缺少冒号
Case syntax error
【含义】case语法错误
【说明】检查所指示的case分支是否符合规定的格式
Character constant too long
【含义】字符型常量太长
【说明】字符型常量的单引号中间只能有一个字符,不得与字符串常量混淆
Code has no effect
【含义】代码没有作用
Compound statement missing }
【含义】复合语句缺少}
【说明】对此应仔细检查程序中的{与}是否正确对应,而不要随意地在程序末尾添加} Constant expression required
【含义】(此处)需要常量表达式
【说明】可能是在C语言规定必须是常量的地方错误地使用了变量或者含有变量的表达式。
C语言与程序设计
比如,定义数组时指定数组大小的[ ]中必须是常量,case的后面必须是常量,如果在这些地方使用了变量就会出现此条提示信息
Constant out of range in comparison
【含义】在比较(运算)中常量超出范围
【说明】这是警告类提示。用关系运算符连接两个数据进行比较时,如果其中有常量且与另一数据的表示范围不一致就会出现这样的提示。比如k被定义成unsigned int型变量,则if(k==-1)……就是不合理的。
Could not find file '×××'
switch语句表示范围【含义】不到×××文件
Declaration missing ;
【含义】(变量)定义/(前置)声明缺少分号
Declaration needs type or storage class
【含义】(变量)定义/(前置)声明缺少类型或者缺少存储类别
Declaration syntax error
【含义】(变量)定义/(前置)声明语法错误
【说明】检查变量定义和函数的前置声明是否符合规定的格式
Default outside of switch
【含义】default在switch的外部
【说明】检查switch语句是否符合规定的格式,尤其是{与}是否对应
Define directive needs an identifier
【含义】定义宏必须有一个标识符
【说明】检查#define是否符合规定的格式
Division by zero
【含义】除数为0
Do statement must have while
【含义】do语句必须有while
【说明】检查do语句是否符合规定的格式,尤其是循环体后面的while控制部分
第4部分TC开发环境中的常见提示信息Duplicate case
【含义】重复的case(分支)
【说明】可能是在switch语句中出现了多个case后面的常量相同的情况
Enum syntax error
【含义】定义枚举类型时有语法错误
Enumeration constant syntax error
【含义】在定义枚举类型中,规定标识符的数值时必须使用常量
Error writing output file
【含义】不能向输出文件写入数据
【说明】可能是在编译或者连接阶段不能正确地生成结果文件,比如磁盘已满Expression syntax
【含义】表达式语法错误
【说明】可能是表达式不符合语法规则,比如左、右括号不配对,或者运算符、操作数配合有错等
Extra parameter in call
【含义】调用函数时有多余的(实际)参数
【说明】检查调用函数的实参是否与定义函数时的形参一一对应
File name too long
【含义】文件名太长
Function call missing )
【含义】函数调用缺少右括号
Function definition out of place
【含义】函数定义放错了位置
【说明】C语言不允许在一个函数的内部定义另一个函数,但有可以需要在一个函数的内部写另一个函数的前置声明,该提示可能是前置声明不符合格式规定造成的。
Function should return a value
【含义】函数应该有一个返回值
【说明】在函数值函数中应至少使用一条return语句指出如何计算函数的返回值,如果没有return语句则会出现该提示信息
Goto statement missing label
【含义】goto语句缺少标号
【说明】检查goto语句后面是不是有正确的标号
Hexadecimal or octal constant too large
【含义】16进制数或8进制数太大
Illegal initialization
【含义】不正确的初始化
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论