Turbo C 编译出错信息2.docx

上传人:b****6 文档编号:5862736 上传时间:2023-01-01 格式:DOCX 页数:15 大小:24.75KB
下载 相关 举报
Turbo C 编译出错信息2.docx_第1页
第1页 / 共15页
Turbo C 编译出错信息2.docx_第2页
第2页 / 共15页
Turbo C 编译出错信息2.docx_第3页
第3页 / 共15页
Turbo C 编译出错信息2.docx_第4页
第4页 / 共15页
Turbo C 编译出错信息2.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Turbo C 编译出错信息2.docx

《Turbo C 编译出错信息2.docx》由会员分享,可在线阅读,更多相关《Turbo C 编译出错信息2.docx(15页珍藏版)》请在冰豆网上搜索。

Turbo C 编译出错信息2.docx

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'。

编译程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1