Turbo C 编译出错信息2.docx
《Turbo C 编译出错信息2.docx》由会员分享,可在线阅读,更多相关《Turbo C 编译出错信息2.docx(15页珍藏版)》请在冰豆网上搜索。
TurboC编译出错信息2
TurboC编译出错信息
一.致命错误:
1.badcallofin-linefunction内部函数非法调用
在使用一个宏定义的内部函数时,没有正确调用。
一个内部函数以双下划线(__)开始和结束。
2.irrducibleexpressiontree不可约表达式树
这种错误是由于源文件中的某些表达式使得代码生成程序无法为它产生代码。
这种表达式必须避免使用。
3.registerallocationfailure存储器分配失效
这种错误指的是源文件行中的表达行听表达式太复杂,代码生成程序无法为它生成代码。
此时应简化这种繁杂的表达式或干脆避免使用它。
二.一般错误
1.#operatornotfollowedbymacroargumentname
#运算符后无宏变量名。
宏定义中,#用于标识一宏变量名。
"#"后必须跟一宏变量名。
2.'xxxxxx'notanargument
'xxxxxx'不是函数参数。
在源程序中将该标识符定义为一个函数参数,但些标识符没有在函数表中出现。
3.ambiguoussymbol'xxxxx'
二义性符号'xxxxxx'。
两个或多个结构的某一域名相同,但具有的偏移,类型不同。
在变量或表达式中引用该域而未带结构名时,将产生二义性,此时需修改某个域名或在引用时加上结构名。
4.argument#missingname
参数表出现语法错误。
函数调用的参数间必须以逗号隔开,并以一右括号结束。
若源文件中含有一个其后不是逗号也不是右括号的参数,则出错。
5.argumentlisterror
参数表出现语法错误。
函数调用的参数必须以逗号隔开,并以一右括号结束。
若源文件中含有一个其后不是逗号也不是右括号的参数,则出错。
6.arrayboundsmissing
数组的界限符"]"丢失。
7.arraysizetoolarge
数组太大。
定义的数组太大,可用内存不够。
8.assemblerstatementtoolong
汇编语句太长。
内部汇编语句不能超过480字节。
9.badconfigurationfile
配置文件不正确。
turboc.cfg配置文件中包含不是合适命令行选择项的非注解文字。
配置文件命令选择项必须以一短横线(-)开始。
10.badfilenameformatinincludedirective
使用include指令时,文件名格式不正确。
11.badifdefdirectivesyntax
ifdef指令语法错误。
#indef必须包含一个标识符(不能是任何其他东西)作为该指令体。
12.badifndefdirectivesyntax
ifndef指令语法错误。
13.adundefdirectivesyntax
undef指令指令语法错误。
14.badfilesizesyntax
位字段长度语法错误。
一个位字段必须是1-16位的常量表达式。
15.callofnon-function
调用未定义函数。
正被调用的函数未定义,通常是由于不正确的函数声明或函数名的拼写错误造成的。
16.cannotmodifyaconstobject
不能修改一个常量对象。
对定义为常量的对象进行不合法操作(如常量赋值)引起此类错误。
17.caseoutsideofswitch
case出现在switch外。
编译程序发现case语句出现在switch语句外面,通常是由于括号不匹配造成的。
18.casestatementmissing
case语句漏掉。
case语句必须包含一以冒号终结的常量表达式。
可能的原因是丢了冒号或在冒号前多了别的符号。
19.casesyntaxerror
case语法错误。
case中包含了不正确的符号。
20.characterconstanttoolong
字符常量太长。
字符常量只能是一个或两个字符长。
21.compoundstatementmissing
复合语句漏掉了在括号"}"。
22.conflictingtypemodifiers
类型修饰符冲突。
对同一指针,只能指定一种变址修饰符(如near或far);而对于同一类函数,也只能给出一种修饰符号(如cdecl,pascal或interrupt).
23.constantexpressinrequired
要求常量表达式。
数组的大小必须是常量,此类错误通常是由于#define常量的拼写出错而引起的。
24.couldnotfind'xxxxxx.xxx'
找不到'xxxxxx.xxx'文件。
25.declarationmissing
说明漏掉';'。
26.declarationneedstypeorstorageclass
说明必须给出类型或存储类。
说明必须包含一个类型或一个存储类。
27.declartionsyntaxerror
说明出现语法错误。
28.defaultoutsideofswitch
default在switch外出现。
29.defaultdirectiveneedsanidentifer
default指令必须有一个标识符。
#define后面的第一个非空格符必须是一个标识符,若编译程序发现一些其他字符,则出现本错误。
30.divisionbyzero
除数为零。
31.dostatementmusthavewhile
do语句中必须有while.
32.do-whilestatementmissing(
do-while语句中漏掉了"("
33.do-whilestatementmissing)
do-while语句中漏掉了")"
34.do-whilestatementmissing;
do-while语句中漏掉了";"
35.duplicatecase
case后的常量表达式重复。
36.enumsyntaxerror
enum语法错误。
enum说明的标识符表的格式不对。
37.enumerationconstantsyntaxerror
枚举常量语法错误。
赋给enum类型变量的表达式值不为常量。
38.errordirective:
xxx
error指令:
xxx。
源文件处理#error指令时,显示该指令的信息。
39.errorwritingoutputfile
写输出文件出现错误。
40.expressionsyntax
表达式语法错误。
当编译程序分析一表达式发现一严重错误时,出现此类错误不,通常是由于两个连续操作符,括号不匹配或缺少括号,前一语句漏掉了分号等引起的。
41.extraparameterincall
调用时出现多余的参数。
42.extraparameterincalltoxxxxx
调用xxxxxx函数时出现了多余的参数。
43.filenametoolong
文件名太长。
44.forstatementmissing)
for语句漏掉")"
45.forstatementmissing;
for语句缺少";"
46.forstatementmissing(
for语句漏掉"("
47.functioncallmissing)
函数调用缺少")"
48.functiondefinitionoutofplace
函数定义错误。
49.functiondoesn'ttakeavariablenumberofargument
函数不接受可变的参数。
源文件中的某个参数使用了va_start宏,此函数不能接受可变数量的参数。
50.gotostatementmissinglabel
goto语句缺少标号。
在goto关键字后面必须有一个标识符。
51.ifstatementmissing)
if语句缺少)
52.ifstatementmissing(
if语句缺少(
53.illegalcharacter')'(0xxxx)
非法字符'('(0xxxx)。
编译程序发现输入文件中有一些非法字符。
以十六进制方式打印该字符。
54.illegalinitialization
非法初始化。
初始化必须是常量表达式或一全局变量extern或static的地址减一常量。
55.illegaloctaldigit
非法八进制数。
56.illegalpointersubtraction
非法指针相减。
这是由于试图以一个非指针变量减去一个指针变量而造成的。
57.illegalstructureoperation
非法结构操作。
结构只能使用(.),取地址(&)和赋值(=)操作符,或作为函数的参数传递。
当编译程序发现结构使用了其他操作符时,出现些类错误。
58.illegaluseoffloatingpoint
浮点运算非法。
浮点运算操作数不允许出现在移位,按位逻辑操作,条件(?
:
),间接引用(*)以及其他一些操作符中。
编译程序发现上述操作符中使用浮点操作数时,出现此类错误。
59.illegaluseofpointer
非常使用指针。
指针只能在加,减,赋值,比较,间接引用(*)或箭头(—>)操作中使用。
如用其他操作符,则出现此类错误。
60.improperuseofatypedefsymbol
typedef符号使用不当。
源文件中使用了typedef符号,变量应一个表达式中出现。
检查一下此符号的说明和可能的拼写错误。
61.in-lineassemblenotallowed
内部汇编语句不允许。
源文件中含直接插入的汇编语句,若在集成环境下进行编译,则出现此类错误。
必须使用TCC命令编译此源文件。
62.incompatiblestorageclass
不相容的存储类。
源文件的函数定义中使用了extern关键字,而只有static(或根本没有存储类型)允许在函数说中出现。
extern关键字只能在所有函数外说明。
63.incompatibletypeconversion
不相容的类型转换。
源文件中试图把一种类型转换成另一种类型。
但这两种类型是不相容的。
如函数与非函数间转换,一种结构或数组与一种标准类型转换,浮点数和指针间转换等。
64.incorrectcommandlineargument:
xxxxxx
不正确的命令行参数:
xxxxxx。
编译程序认为此命令行参数是非法的。
65.incorrectconfigurationfileargument:
xxxxxx
不正确的配置文件参数:
xxxxxx。
编译程序认为此配置文件是非法的。
检查一下前面的短横线(-)
66.incorrectnumberformat
不正确的数据格式。
编译程序发现在十六进制数中出现十进制小数点。
67.incorrectuseofdefault
default不正确使用。
编译程序发现default关键字后缺少冒号。
68.initializersyntaxerror
初始化语法错误。
初始化过程缺少或多了操作符,括号不匹配或其他一些不正常情况。
69.invalidindirection
无效的间接运算。
间接运算操作符(*)要求非void指针作为操作分量。
70.invalidmacroargumentseparator
无效的宏参数分隔符。
在宏定义中,参数必须用逗号相隔。
编译程序发现在参数名后面有其他非法字符时,出现此类错误。
71.invalidpointeraddition
无效的指针相加。
源程序中试图把两个指针相加。
72.invaliduseofarrow
箭头使用错。
在箭头(-->)操作符后必须跟一标识符。
73.invaliduseofdot
点(.)操作符使用错误。
在点(.)操作符后必须跟一标识符。
74.lvaluerequired
赋值请求。
赋值操作符的左边必须是一个地址表达式,包括数值变量,指针变量,结构引用域,间接指针和数组分量。
75.marcoargumentsyntaxerror
宏参数语法错误。
宏定义中的参数必须是一个标识符。
编译程序发现所需的参数不是标识符的字符,则出现此类错误。
76.marcoexpansiontoolong
宏扩展太长。
一个宏扩展不能多于4096个字符。
当宏递归扩展自身时,常出现此类错误。
宏不能对自身进行扩展。
77.maycomplieonlyonefilewhenanoutputfilenameisgiven
给出一个输出文件名时,可能只编译一个文件。
在命令行编译中使用-O选择,只允许一个输出文件。
此时,只编译第一个文件,其他文件被忽略。
78.mismatchnumberofparametersindefinition
定义中参数个数匹配。
定义中参数和函数原形中提供的信息不匹配。
79.misplacedbreak
break位置错误。
编译程序发现break语句在switch语句或循环结构外。
80.misplacedcontinue
continue位置错误。
编译程序发现continue语句在循环结构外。
81.misplacedelse
else位置错误。
编译程序发现else语句缺少与之相匹配的if语句。
82.misplaceddecimalpoint
十进制小数点位置错。
编译程序发现浮点数常数的指数部分有一十进制小数点。
83.misplacedelifdirective
elif指令位置错。
编译程序没有发现与#elif指令相匹配的#if,#ifdef或ifndef指令。
84.misplacedelsedirective
else指令位置错。
编译程序没有发现与#else指令相匹配的#if,#ifdef或ifndef指令。
85.misplacedendifdirective
endif指令位置错。
编译程序没有发现与#endif指令相匹配的#if,#ifdef或ifndef指令。
86.mustbeaddressable
必须是可编址的。
取址操作符(&)作用于一个不可编址的对象,如寄存器变量。
87.musttakeaddressofmemorylocation
必须是内存一地址。
源文件中某一表达式使用了不可编址操作符(&),如对寄存器变量。
88.nofilenameending
无文件名终止符。
在#include语句中,文件名缺少正确的闭引号(")或尖括号(>)。
89.nofilenamesgiven
未给文件名。
Turboc命令编译(TCC)中没有任何文件。
编译必须有一个文件。
90.Non-portablepointerassignment
对不可移植的指针赋值。
源程序中的将一个指针赋给一个非指针,或相反。
但作为特例,允许常量零值赋给一个指针。
如果比较恰当,可以强行抑制本错误信息。
91.non-portablepointercomparison
不可移植的指针比较。
源程序中一个指针和一个非指针(常量零除外)进行比较。
如果比较恰当,就强行抑制本错误信息。
92.non-portablereturntypeconversion
不可移植的返回类型转换。
在返回语句中的表达式类型与函数说明中的类型不同。
但如果函数的返回表达式是一指针,则可以进行转换。
此时,返回指针的函数可能送回一个常量零,而零被转换成一个适当的指针值。
93.notanallowedtype
不允许的类型。
在源文件中说明了几种禁止了的类型,如函数返回一个函数或数组。
94.outofmemory
内存不够。
95.pointerrequiredonleftsideof
操作符左边须是一指针。
96.redeclarationof'xxxxxx'
'xxxxxx'重定义。
此标识符已经定义。
97.sizeofstructureorarraynotknown
结构或数组大小不定。
有些表达式(如sizeof或存储说明)中出现一个未定义的结构或一个空长度数组。
如果结构长度不需要,在定义之前就可以引用;如果数组不申请存储空间或者初始化时给定了长度,那么就可以定义为空长。
98.statementmissing
语句缺少";"。
编译程序一表达式语句后面没有分号。
99.structureorunionsyntaxerror
结构或联合语法错误。
编译程序发现在struct或union关键字后面没有标识符或左花括号。
100.structuresizetoolarge
结构太大。
源文件中说明了一个结构,它所需的内存区域太大以致存储空间不够。
101.subscriptingmissing]
下标缺少']'。
102.switchstatementmissing)
switch语句缺少')'
103.switchstatementmissing(
switch语句缺少'('
104.toofewparametersincall
函数调用参数不够。
105.toofewparameterincallto'xxxxxx'
调用'xxxxxx'时参数不够。
106.toomanycases
case太多。
switch语句最多只能有257个case.
107.toomanydecimalpoints
十进制小数点太多。
108.toomanydefaultcases
default太多。
109.toomanyexponents
阶码太多。
编译程序发现一个浮点常量中有不止一个的阶码。
110.toomanyinitializers
初始化太多。
编译程序发现初始经比说明所允许的要多。
111.toomanystorageclassesindeclaration
说明中存储类太多。
一个说明只允许有一种存储类。
112.toomanytypesindeclaration
说明中类型太多。
一个说明只一种下更基本类型:
char,int,float,double,struct,union,enum,或typedef名。
113.toomuchautomemoryinfunction
函数中自动存储太多。
当前函数声明的自动存储(局部变量)超过了可用的存储器空间。
114.toomuchcodedefineinfile
文件定义的代码太多。
当前文件中函数的总长超过了64k字节。
115.toomuchglobaldatadefineinfile
文件中定义的全程数据太多。
全程数据声明的总数超过了64k字节。
116.twoconsecutivedots
两个连续点。
因为省略号包含三个点(...),而十进制小数点和选择操作符使用一个点(.),所以在C程序中出现两个连续点是不允许的。
117.typemismatchinparameter#
第#个参数类型不匹配。
通过一个指令访问已由原型说明的参数时,给定第#参数(从左到右)不能转换为已说明的参数类型。
118.typemismatchinparameter#incallto'xxxxxx'
调用'xxxxxx'时,第#个参数类型不匹配。
源文件中通过一个原型说明了指定的函数,而给定的参数(从左到右)不能转换为已说明的参数类型。
119.typemismatchinparameter'xxxxxx'
参数'xxxxxx'类型不匹配。
源文件中由原型说明了一个函数指针调用的函数,而所指定的参数不能转换为说明为已说明的参数类型。
120.typemismatchinparametr'xxxxxx'incallto'yyyyyy'
调用'yyyyyy'时参数'xxxxxx'类型不匹配。
源文件中由原型说明了一个指定的参数,而指定参数不能转换为另一个说明的参数类型。
121.typemismatchinredeclarationof'xxx'
重定义类型不匹配。
源文件中把一个已经说明的变量生新说明为另一种类型。
如果一个函数被调用,而后又被调用成返回非整型值也会产生此类错误。
在这种情况下,必须在第一个调用函数前,给函数加上extern说明。
122.unabletocreatoutputfile'xxxxxx.xxx'
下能创建输出文件'xxxxxx.xxx'。
当工作软盘已满或有写保护时产生此类错误。
123.unabletocreateturboc.lnk
不能创建turboc.lnk。
编译程序不能创建临时文件turboc.lnk,因为它不能存取磁盘或才磁盘已满。
124.unabletoexecutecommand'xxxxxx'
不能执行'xxxxxx'命令。
找不到TLINK或MASM,或者磁盘出错。
125.unabletoopenincludefile'xxxxxx.xxx'
不能打开包含文件'xxxxxx.xxx'。
编译程序找不到该包含文件。
126.unabletoopeninputfile'xxxxxx.xxx'
不能打开输出文件'xxxxxx.xxx'。
编译程序发现找不到源文件时出现此类错误。
127.undefinedstructure'xxxxxx'
标号'xxxxxx'未定义。
函数goto语句后的标号没有定义。
128.undefinedstructure'xxxxxx'
结构'xxxxxx'未定义。
源文件中使用了未经说明的某个结构。
可能是由于结构名拼写错误或缺少结构说明而引起。
129.undefinedsymbol'xxxxxx'
符号'xxxxxx'未定义。
标识符无定义。
可能是由于说明或引用处有拼写错误。
也可能是由于标识符说明错误引起。
130.unexpectedendoffileincommentstartedonline#
源文件在第#个注释中意外结束。
通过是由于注释结束标志(*/)漏掉引起。
131.unexpectedendoffileinconditionalstatedonline#
源文件在#行开始的条件语句中意外结束。
在编译程序遇到#endif前源程序结束,通常是由于#endif漏掉或拼写错误引起的。
132.unknownpreprocessordirective'xxx'
不认识的预处理指令:
'xxx'。
编译程序