(完整word版)C语言程序编译常见错误对照

合集下载

c语言常见问题及解决方法

c语言常见问题及解决方法

c语言常见问题及解决方法
一、C语言常见问题及解决方法
1、程序编译错误,原因及解决方法
(1)语法错误:检查程序中出现的缩进、分号、圆括号、大括号的位置,以及程序中变量的定义,保证程序的语法正确。

(2)类型错误:检查程序中关系运算符两边操作数的类型是否匹配,以及变量的使用是否正确,保证每一步运算的类型正确。

(3)变量未声明:检查变量在程序中是否已经声明,声明后才能正确使用。

2、程序运行错误,原因及解决方法
(1)程序中存在逻辑错误:检查程序中的流程是否按设计要求正确,以及程序输出结果是否正确。

(2)程序中存在数据错误:检查程序中的数据是否正确,数据输入、输出以及运算结果都要求正确。

(3)程序运行错误:检查程序中的函数调用是否正确,注意函数的参数和返回值的类型要求。

3、程序编译成功却无法执行,原因及解决方法
这可能是程序出现了语法错误,编译器无法判断,所以编译成功,但是在执行时系统无法识别出程序的命令。

可以通过重新编写程序,查找错误语句的方式查找程序错误,并根据提示修改程序,以解决此问题。

C语言常见错误中英文对照表

C语言常见错误中英文对照表

LNK LNK LNK
1169 2001 2005
warning
C4067
warning warning
C4091 C4101
one or more multiply defined symbols found unresolved external symbol _main _main already defined in Cpp1.obj unexpected tokens following preprocessor directive - expected a newline '' ignored on left of 'type' when no variable is declared 'xxx' unreferenced local variable '=' conversion from 'type1' to 'type2', possible loss of data 'initializing' truncation from 'const double' to 'float' ';' empty controlled statement found; is this the intent? 'xxx' function should return a value; 'void' return type assumed 'operator'operator has no effect; expected operator with side-effect '==' operator has no effect; did you intend '='? local variable 'xxx' used without having been initialized 'xxx' not all control paths return a value potential divide by 0

C语言程序设计中的常见错误和解决

C语言程序设计中的常见错误和解决

C语言程序设计中的常见错误和解决在C语言程序设计中,很多初学者经常会遇到一些常见的错误。

这些错误可能是语法错误、逻辑错误或者是其他一些常见问题导致的。

本文将介绍一些经常出现的C语言程序设计错误,并提供相应的解决方法,帮助读者更好地理解和掌握C语言编程。

一、语法错误1. 括号未匹配括号未匹配是C语言中常见的语法错误之一。

在编写代码时,经常会使用到括号,如if语句、for循环等。

如果不小心忘记关闭某个括号,就会导致括号未匹配的错误。

解决方法:仔细检查代码中的括号是否匹配,并确保每个左括号都有相应的右括号。

2. 分号丢失分号丢失是C语言中另一个常见的语法错误。

在C语言中,分号用于分隔语句,如果遗漏了分号,编译器就无法识别出语句的结束。

解决方法:检查每一行语句的末尾,确保每个语句都以分号结尾。

3. 变量未声明在使用变量之前,必须先声明该变量。

如果没有先声明变量就直接使用,编译器将无法识别该变量,从而报错。

解决方法:在使用变量之前,先进行变量声明。

二、逻辑错误1. 循环控制条件错误在编写循环语句时,控制条件的错误是常见的逻辑错误。

如果循环的控制条件错误,循环可能无法正常结束或者根本无法执行。

解决方法:仔细检查循环的控制条件,确保条件符合预期,并在循环体内更新循环变量。

2. 数组越界访问在C语言中,数组的索引从0开始,通过索引访问数组元素时,如果索引超出了数组的范围,就会导致数组越界访问的错误。

解决方法:确保数组索引在正确的范围内,避免越界访问。

如果需要遍历数组,可以使用循环来控制数组的访问范围。

三、其他常见问题及解决方法1. 变量类型不匹配在赋值操作或者表达式计算时,如果不同类型的变量之间进行操作,则会导致变量类型不匹配的错误。

解决方法:确保操作的变量类型相同或者进行强制类型转换,以保证变量类型的匹配。

2. 内存泄漏在C语言中,手动分配内存的操作是常见的。

如果分配了内存空间,但在使用完毕后未及时释放,就会导致内存泄漏。

(完整word版)C语言程序编译常见错误对照

(完整word版)C语言程序编译常见错误对照
分析:例如“int *pa,*pb,*a; a = pa + pb;”中两个指针变量不能进行“+”运算
error C2117: 'xxx' : array bounds overflow
中文对照:(编译Байду номын сангаас误)数组xxx边界溢出
分析:一般是字符数组初始化时字符串长度大于字符数组长度,例如“char str[4] = "abcd";”
中文对照:(编译错误)重复定义形式参数xxx
分析:函数首部中的形式参数不能在函数体中再次被定义
error C2084: function 'xxx' already has a body
中文对照:(编译错误)已定义函数xxx
分析:在VC++早期版本中函数不能重名,6.0版本中支持函数的重载,函数名可以相同但参数不一样
error C2048: more than one default
中文对照:(编译错误)default语句多于一个
分析:switch语句中只能有一个default,删去多余的default
error C2050: switch expression not integral
中文对照:(编译错误)switch表达式不是整型的
error C2017: illegal escape sequence
中文对照:(编译错误)转义字符非法
分析:一般是转义字符位于' '或" "之外,例如“char error = ' '\n;”
error C2018: unknown character '0xhh'

C语言报错整理大全

C语言报错整理大全

C语言错误代码及错误信息错误释义error 1: Out of memory 内存溢出error 2: Identifier expected 缺标识符error 3: Unknown identifier 未定义的标识符error 4: Duplicate identifier 重复定义的标识符error 5: Syntax error 语法错误error 6: Error in real constant 实型常量错误error 7: Error in integer constant 整型常量错误error 8: String constant exceeds line 字符串常量超过一行error 10: Unexpected end of file 文件非正常结束error 11: Line too long 行太长error 12: Type identifier expected 未定义的类型标识符error 13: Too many open files 打开文件太多error 14: Invalid file name 无效的文件名error 15: File not found 文件未找到error 16: Disk full 磁盘满error 17: Invalid compiler directive 无效的编译命令error 18: Too many files 文件太多error 19: Undefined type in pointer def 指针定义中未定义类型error 20: Variable identifier expected 缺变量标识符error 21: Error in type 类型错误error 22: Structure too large 结构类型太长error 23: Set base type out of range 集合基类型越界error 24: File components may not be files or objectsfile分量不能是文件或对象error 25: Invalid string length 无效的字符串长度error 26: Type mismatch 类型不匹配error 27:error 27:Invalid subrange base type 无效的子界基类型error 28:Lower bound greater than upper bound 下界超过上界error 29:Ordinal type expected 缺有序类型error 30:Integer constant expected 缺整型常量error 31:Constant expected 缺常量error 32:Integer or real constant expected 缺整型或实型常量error 33:Pointer Type identifier expected 缺指针类型标识符error 34:Invalid function result type 无效的函数结果类型error 35:Label identifier expected 缺标号标识符error 36:BEGIN expected 缺BEGINerror 37:END expected 缺ENDerror 38:Integer expression expected 缺整型表达式error 39:Ordinal expression expected 缺有序类型表达式error 40:Boolean expression expected 缺布尔表达式error 41:Operand types do not match 操作数类型不匹配error 42:Error in expression 表达式错误error 43:Illegal assignment 非法赋值error 44:Field identifier expected 缺域标识符error 45:Object file too large 目标文件太大error 46:Undefined external 未定义的外部过程与函数error 47:Invalid object file record 无效的OBJ文件格式error 48:Code segment too large 代码段太长error 49:Data segment too large 数据段太长error 50:DO expected 缺DOerror 51:Invalid PUBLIC definition 无效的PUBLIC定义error 52:Invalid EXTRN definition 无效的EXTRN定义error 53: Too many EXTRN definitions 太多的EXTRN定义error 54:OF expected 缺OFerror 55:INTERFACE expected 缺INTERFACEerror 56:Invalid relocatable reference 无效的可重定位引用error 57:THEN expected 缺THENerror 58:TO or DOWNTO expected 缺TO或DOWNTO error 59:Undefined forward 提前引用未经定义的说明error 61:Invalid typecast 无效的类型转换error 62:Division by zero 被零除error 63:Invalid file type 无效的文件类型error 64:Cannot read or write variables of this type 不能读写此类型变量error 65:Pointer variable expected 缺指针类型变量error 66:String variable expected 缺字符串变量error 67:String expression expected 缺字符串表达式error 68:Circular unit reference 单元UNIT部件循环引用error 69:Unit name mismatch 单元名不匹配error 70:Unit version mismatch 单元版本不匹配error 71:Internal stack overflow 内部堆栈溢出error 72:Unit file format error 单元文件格式错误error 73:IMPLEMENTATION expected 缺IMPLEMENTATIONerror 74:Constant and case types do not match 常量和CASE类型不匹配error 75:Record or object variable expected 缺记录或对象变量error 76:Constant out of range 常量越界error 77:File variable expected 缺文件变量error 78:Pointer expression expected 缺指针表达式error 79:Integer or real expression expected 缺整型或实型表达式error 80:Label not within current block 标号不在当前块内error 81:Label already defined 标号已定义error 82:Undefined label in preceding statement part 在前面未定义标号error 83:Invalid @ argument 无效的@参数error 84:UNIT expected 缺UNITerror 85: ";" expected 缺“;”error 86:":" expected 缺“:”error 87:"," expected 缺“,”error 88:"(" expected 缺“(”error 89:")" expected 缺“)”error 90:"=" expected 缺“=”error 91:":=" expected 缺“:=”error 92:"[" or "(." Expected 缺“[”或“(.”error 93: "]" or ".)" expected 缺“]”或“.)”error 94:"." expected 缺“.”error 95: ".." expected 缺“..”error 96:Too many variables 变量太多error 97:Invalid FOR control variable 无效的FOR循环控制变量error 98:Integer variable expected 缺整型变量error 99:Files and procedure types are not allowed here 该处不允许文件和过程类型error 100:String length mismatch 字符串长度不匹配error 101:Invalid ordering of fields 无效域顺序error 102:String constant expected 缺字符串常量error 103:Integer or real variable expected 缺整型或实型变量error 104:Ordinal variable expected 缺有序类型变量error 105:INLINE error INLINE错误error 106:Character expression expected 缺字符表达式error 107:Too many relocation items 重定位项太多error 108:Overflow in arithmetic operation 算术运算溢出error 112:CASE constant out of range CASE常量越界error 113:Error in statement 表达式错误error 114:Cannot call an interrupt procedure 不能调用中断过程error 116:Must be in 8087 mode to compile this 必须在8087模式编译error 117:Target address not found 找不到目标地址error 118:Include files are not allowed here 该处不允许INCLUDE文件error 119:No inherited methods are accessible here 该处继承方法不可访问error 121:Invalid qualifier 无效的限定符error 122:Invalid variable reference 无效的变量引用error 123:Too many symbols 符号太多error 124:Statement part too large 语句体太长error 126:Files must be var parameters 文件必须是变量形参error 127:Too many conditional symbols 条件符号太多error 128:Misplaced conditional directive 条件指令错位error 129:ENDIF directive missing 缺ENDIF指令error 130:Error in initial conditional defines 初始条件定义错误error 131:Header does not match previous definition 和前面定义的过程或函数不匹配error 133:Cannot evaluate this expression 不能计算该表达式error 134:Expression incorrectly terminated 表达式错误结束error 135:Invalid format specifier 无效格式说明符error 136:Invalid indirect reference 无效的间接引用error 137:Structured variables are not allowed here 该处不允许结构变量error 138:Cannot evaluate without System unit 没有System单元不能计算error 139:Cannot access this symbol 不能存取符号error 140:Invalid floating point operation 无效的符号运算error 141:Cannot compile overlays to memory 不能编译覆盖模块至内存error 142:Pointer or procedural variable expected 缺指针或过程变量error 143:Invalid procedure or function reference 无效的过程或函数调用error 144:Cannot overlay this unit 不能覆盖该单元error 146:File access denied 不允许文件访问error 147:Object type expected 缺对象类型error 148:Local object types are not allowed 不允许局部对象类型error 149:VIRTUAL expected 缺VIRTUALerror 150: Method identifier expected 缺方法标识符error 151:Virtual constructors are not allowed 不允许虚构造函数error 152:Constructor identifier expected 缺构造函数标识符error 153:Destructor identifier expected 缺析构函数标识符error 154:Fail only allowed within constructors 只能在构造函数内使用Fail标准过程error 155:Invalid combination of opcode and operands 操作数与操作符无效组合error 156:Memory reference expected 缺内存引用指针error 157:Cannot add or subtract relocatable symbols 不能加减可重定位符号error 158:Invalid register combination 无效寄存器组合error 159:286/287 instructions are not enabled 未激活286/287指令error 160:Invalid symbol reference 无效符号指针error 161:Code generation error 代码生成错误error 162:ASM expected 缺ASMerror 166:Procedure or function identifier expected 缺过程或函数标识符error 167:Cannot export this symbol 不能输出该符号error 168:Duplicate export name 外部文件名重复error 169:Executable file header toerror 170:Too many segments 段太多fatal error C1004: unexpected end of file found 未找到文件末尾(可能是括号匹配问题)fatal error C1021: invalid preprocessor command '1nclude' 无效的编译预处理命令'1nclude' fatal error C1083: Cannot open include file: 'stdi.h': No such file or directory 不能打开头文件'stdi.h',文件或文件夹不存在 error C2101: '&' on constant 不能计算常量的地址error C2059: syntax error : 'while' 在'while'附近,存在语法错误error C2061: syntax error : identifier 'x' 标识符x的附近,存在语法错误 error C2065: 'i' : undeclared identifier 变量i未定义error C2078: too many initializers 数组/结构等变量初始化时的数据太多error C2087: '<Unknown>' : missing subscript 丢失数组下标error C2106: '=' : left operand must be l-value '='的左侧应当是左值,即不能是常量 error C2115: '=' : incompatible types '='两侧的类型不兼容error C2133: 'a' : unknown size a(可能是数组名)的大小不确定。

C语言编程中常见的五种错误及对应解决方案

C语言编程中常见的五种错误及对应解决方案

C语⾔编程中常见的五种错误及对应解决⽅案⽬录1. 未初始化的变量2. 数组越界3. 字符串溢出4. 重复释放内存5. 使⽤⽆效的⽂件指针前⾔:C 语⾔有时名声不太好,因为它不像近期的编程语⾔(⽐如 Rust)那样具有内存安全性。

但是通过额外的代码,⼀些最常见和严重的 C 语⾔错误是可以避免的。

即使是最好的程序员也⽆法完全避免错误。

这些错误可能会引⼊安全漏洞、导致程序崩溃或产⽣意外操作,具体影响要取决于程序的运⾏逻辑。

下⽂讲解了可能影响应⽤程序的五个错误以及避免它们的⽅法:1. 未初始化的变量程序启动时,系统会为其分配⼀块内存以供存储数据。

这意味着程序启动时,变量将获得内存中的⼀个随机值。

有些编程环境会在程序启动时特意将内存“清零”,因此每个变量都得以有初始的零值。

程序中的变量都以零值作为初始值,听上去是很不错的。

但是在 C 编程规范中,系统并不会初始化变量。

看⼀下这个使⽤了若⼲变量和两个数组的⽰例程序:#include <stdio.h>#include <stdlib.h>intmain(){int i, j, k;int numbers[5];int *array;puts("These variables are not initialized:");printf(" i = %d\n", i);printf(" j = %d\n", j);printf(" k = %d\n", k);puts("This array is not initialized:");for (i = 0; i < 5; i++) {printf(" numbers[%d] = %d\n", i, numbers[i]);}puts("malloc an array ...");array = malloc(sizeof(int) * 5);if (array) {puts("This malloc'ed array is not initialized:");for (i = 0; i < 5; i++) {printf(" array[%d] = %d\n", i, array[i]);}free(array);}/* done */puts("Ok");return 0;}这个程序不会初始化变量,所以变量以系统内存中的随机值作为初始值。

C语言编写常见错误

C语言编写常见错误

C51语言编写常见错误一、循环1)、在进行while,do...while循环时要对while括号里面的变量赋初值,否则可能出现的不是自己想要的结果。

2)、在写for循环语句中,特别要注意括号里面的变量要一致(例如:for(i=0;i<8;j++)。

)错误。

这个错误不好改,写程序时一定要注意这一点。

3)、在写for循环时,如果想让变量的值一次性增加不是一而是大于一,这时要注意最后变量的变化要写成表达式例如:i=i+10;不要写成i+10,这个不起作用。

4)、在写循环时,对某些变量赋初值时,注意赋初值所放的位置,是放在循环里面还是外面。

不同的地方可能得到的结果不同。

要注意二、结构体、链表1)、在创建链表时,最好对首个结点赋值,否则在编译时可能会出现错误。

(如:后面会显示屯屯屯屯屯屯?)。

三、条件语句1)、在运用if条件语句时,括号里面的等于不要写成赋值号(例如:if(a==1)不要写成if(a=1))。

也就是说在if语句的条件中不要出现赋值号。

四、函数1)、在函数进行参数传递时类型要一致,且只能是实参传递到形参,不能反过来传递。

传递的实参必须是常量(在使用的时候)。

2)、在写主函数时,定义一些变量、数组或指针时,最好在主函数的最前面就定义,否则可能会出现错误。

3)、在写输入函数scanf时,后面的变量前面要加取地址符(例如:scanf(“%d”,&a),不要省略&)。

4)、在写字符串复制函数(strcpy)时切忌写错,把strcpy写成stycpy。

5)、不能直接把字符串赋给一个变量,如果要把一个字符串赋给一个变量,需要用到字符串复制函数strcpy,这个函数包含在“string.h”头文件里面,用时需要将此头文件写在程序的开头。

Strcpy(char *a,char b ),将字符串b复制到字符串a里面,注意字符串a的长度要大于等于字符串b,返回值为字符串a。

五、运算1)、在计算两个数的成积时,不要省略乘号*,例如:s=-b/(2*a)正确;s=-b/2a 错误;2)、在进行除法运算时,要注意除法与取整的区别。

C语言常见错误集合大全-完整版-程序员必备手册

C语言常见错误集合大全-完整版-程序员必备手册
又如:
if (a%3==0);
I++;
本是如果3整除a,则I加1。但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1。
再如:
for (I=0;I<5;I++);
{scanf("%d",&x);
printf("%d",x);}
5.忘记加分号。
分号是C语句中不可缺少的一部分,语句末尾必须有分号。
a=1
b=2
编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。
{ z=x+y;
t=z/100;
printf("%f",t);
} QQ291911320
对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。
6.多加分号。
对于一个复合语句,如:
{ z=x+y;
t=z/100;
printf("%f",t);
};
复合语句的花括号后不应再加分号,否则将会画蛇添足。
1.书写标识符时,忽略了大小写字母的区别。
main()
{
int a=5;
printf("%d",A);
} ቤተ መጻሕፍቲ ባይዱ
编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

c语言编译常见错误提示信息

c语言编译常见错误提示信息

常见C语言错误提示信息Ambiguous operators need parentheses 不明确的运算需要用括号括起Ambiguous symbol ''xxx''不明确的符号Argument list syntax error参数表语法错误Array bounds missing丢失数组界限符Array size too large数组尺寸太大Bad character in parameters参数中有不适当的字符Bad file name format in include directive 包含命令中文件名格式不正确Bad ifdef directive syntax编译预处理ifdef有语法错Bad undef directive syntax编译预处理undef有语法错Bit field too large 位字段太长Call of non-function调用未定义的函数Call to function with no prototype调用函数时没有函数的说明Cannot modify a const object不允许修改常量对象Case outside of switch漏掉了case 语句Case syntax errorCase 语法错误Code has no effect代码不可述不可能执行到Compound statement missing{分程序漏掉"{"Conflicting type modifiers不明确的类型说明符Constant expression required要求常量表达式Constant out of range in comparison在比较中常量超出范围Conversion may lose significant digits转换时会丢失意义的数字Conversion of near pointer not allowed 不允许转换近指针Could not find file ''xxx''找不到XXX文件Declaration missing ; 说明缺少";" Declaration syntax error说明中出现语法错误Default outside of switchDefault 出现在switch语句之外Define directive needs an identifier定义编译预处理需要标识符Division by zero 用零作除数Do statement must have whileDo-while语句中缺少while部分Enum(枚举) syntax error枚举类型语法错误Enumeration constant syntax error枚举常数语法错误Error directive :xxx错误的编译预处理命令Error writing output file写输出文件错误Expression syntax error表达式语法错误Extra parameter in call调用时出现多余错误File name too long 文件名太长Function call missing )函数调用缺少右括号Fuction definition out of place函数定义位置错误Fuction should return a value函数必需返回一个值Goto statement missing labelGoto语句没有标号Hexadecimal or octal constant too large 16进制或8进制常数太大Illegal character ''x''非法字符xIllegal initialization非法的初始化Illegal octal digit非法的8进制数字Illegal pointer subtraction非法的指针相减Illegal structure operation非法的结构体操作Illegal use of floating point非法的浮点运算Illegal use of pointer指针使用非法Improper use of a typedefsymbol类型定义符号使用不恰当In-line assembly not allowed不允许使用行间汇编Incompatible storage class存储类别不相容Incompatible type conversion不相容的类型转换Incorrect number format错误的数据格式Incorrect use of defaultDefault使用不当Invalid indirection无效的间接运算Invalid pointer addition指针相加无效Irreducible expression tree无法执行的表达式运算Lvalue required需要逻辑值0或非0值Macro argument syntax error宏参数语法错误Macro expansion too long宏的扩展以后太长Mismatched number of parameters in definition定义中参数个数不匹配Misplaced break此处不应出现break语句Misplaced continue此处不应出现continue语句Misplaced decimal point此处不应出现小数点Misplaced elif directive不应编译预处理elifMisplaced else 此处不应出现elseMisplaced else directive此处不应出现编译预处理else Misplaced endif directive此处不应出现编译预处理endif Must be addressable必须是可以编址的Must take address of memory location 必须存储定位的地址No declaration for function ''xxx''没有函数xxx的说明No stack缺少堆栈No type information没有类型信息Non-portable pointer assignment不可移动的指针(地址常数)赋值Non-portable pointer comparison不可移动的指针(地址常数)比较Non-portable pointer conversion不可移动的指针(地址常数)转换Not a valid expression format type不合法的表达式格式Not an allowed type不允许使用的类型Numeric constant too large数值常量太大Out of memory内存不够用Parameter ''xxx'' is never used能数xxx没有用到Pointer required on left side of ->符号->的左边必须是指针Possible use of ''xxx'' before definition 在定义之前就使用了xxx(警告)Possibly incorrect assignment赋值可能不正确Redeclaration of ''xxx''重复定义了xxxRedefinition of ''xxx'' is not identical xxx的两次定义不一致Register allocation failure寄存器定址失败Repeat count needs an lvalue重复计数需要逻辑值Size of structure or array not known结构体或数给大小不确定Statement missing ;语句后缺少";"Structure or union syntax error结构体或联合体语法错误Structure size too large结构体尺寸太大Sub scripting missing ]下标缺少右方括号Superfluous & with function or array函数或数组中有多余的"&" Suspicious pointer conversion可疑的指针转换Symbol limit exceeded符号超限Too few parameters in call函数调用时的实参少于函数的参数不Too many default casesDefault太多(switch语句中一个)Too many error or warning messages错误或警告信息太多Too many type in declaration说明中类型太多Too much auto memory in function函数用到的局部存储太多Too much global data defined in file文件中全局数据太多Two consecutive dots两个连续的句点Type mismatch in parameter xxx参数xxx类型不匹配Type mismatch in redeclaration of ''xxx'' xxx重定义的类型不匹配Unable to create output file ''xxx''无法建立输出文件xxxUnable to open include file ''xxx''无法打开被包含的文件xxxUnable to open input file ''xxx''无法打开输入文件xxxUndefined label ''xxx''没有定义的标号xxxUndefined structure ''xxx''没有定义的结构xxxUndefined symbol ''xxx''没有定义的符号xxxUnexpected end of file in comment started on line xxx从xxx行开始的注解尚未结束文件不能结束Unexpected end of file in conditional started on line xxx从xxx 开始的条件语句尚未结束文件不能结束Unknown assemble instruction未知的汇编结构Unknown option未知的操作Unknown preprocessor directive: ''xxx''不认识的预处理命令xxxUnreachable code无路可达的代码Unterminated string or character constant字符串缺少引号User break用户强行中断了程序Void functions may not return a valueVoid类型的函数不应有返回值Wrong number of arguments调用函数的参数数目错''xxx'' not an argumentxxx不是参数''xxx'' not part of structurexxx不是结构体的一部分xxx statement missing (xxx语句缺少左括号xxx statement missing )xxx语句缺少右括号xxx statement missing ; xxx缺少分号xxx'' declared but never used说明了xxx但没有使用xxx'' is assigned a value which is never used给xxx赋了值但未用过Zero length structure结构体的长度为零。

C语言编译、运行时常见错误

C语言编译、运行时常见错误

Turbo C编译、连接和运行时的常见错误&C语言编程风格一、编译时的常见错误1. 数据类型错误。

此类错误是初学者编程时的常见现象, 下面是一些要引起注意的错误:(1) 所有变量和常量必须要加以说明。

(2) 变量只能赋给相同类型的数据。

(3) 对scanf()语句, 用户可能输入错误类型的数据项, 这将导致运行时出错, 并报出错信息。

为避免这样的错误出现, 你就提示用户输入正确类型的数据。

(4) 在执行算术运算时要注意:a. 根据语法规则书写双精度数字。

要写0.5, 而不是写.5; 要写1.0,而不是1。

尽管C语言会自动地把整型转换成双精度型, 但书写双精度型是个好习惯。

让C语言为你做强行转换这是一种效率不高的程序设计风格。

这有可能导致转换产生错误。

b. 不要用0除。

这是一个灾难性的错误, 它会导致程序失败, 不管C语言的什么版本, 都是如此, 执行除法运算要特别小心。

c. 确保所有的双精度数(包括那些程序输入用的双精度数) 是在实数范围之内。

d. 所有整数必须在整数允许的范围内。

这适用于所有计算结果, 包括中间结果。

2. 将函数后面的";"忘掉。

此时错误提示色棒将停在该语句下的一行, 并显示:Statement missing ; in function <函数名>3. 给宏指令如#include, #define等语句尾加了";"号。

4. "{"和"}"、"("和")"、"/*"和"*/"不匹配。

引时色棒将位于错误所在的行, 并提示出有关丢掉括号的信息。

5. 没有用#include指令说明头文件, 错误信息提示有关该函数所使用的参数未定义。

6. 使用了Turbo C保留关键字作为标识符, 此时将提示定义了太多数据类型。

c语言经典错误

c语言经典错误

C语言命语法错误大全C语言命语法错误大全fatalerrorC1004: unexpectedendoffilefound未找到文件末尾(可能是括号匹配问题)fatalerrorC1021: invalidpreprocessorcommand'1nclude'无效的编译预处理命令'1nclude'fatalerrorC1083: Cannotopenincludefile: 'stdi.h': Nosuchfileordirectory 不能打开头文件'stdi.h',文件或文件夹不存在errorC2101: '&' onconstantC语言命语法错误大全fatalerrorC1004: unexpectedendoffilefound未找到文件末尾(可能是括号匹配问题)fatalerrorC1021: invalidpreprocessorcommand'1nclude'无效的编译预处理命令'1nclude'fatalerrorC1083: Cannotopenincludefile: 'stdi.h': Nosuchfileordirectory 不能打开头文件'stdi.h',文件或文件夹不存在errorC2101: '&' onconstant不能计算常量的地址errorC2059: syntaxerror: 'while'在'while'附近,存在语法错误errorC2061: syntaxerror: identifier'x'标识符x的附近,存在语法错误errorC2065: 'i' : undeclaredidentifier变量i未定义errorC2078: toomanyinitializers数组/结构等变量初始化时的数据太多errorC2087: '<Unknown>' : missingsubscript 丢失数组下标errorC2106: '=' : leftoperandmustbel-value '='的左侧应当是左值,即不能是常量errorC2115: '=' : incompatibletypes'='两侧的类型不兼容errorC2133: 'a' : unknownsizea(可能是数组名)的大小不确定。

C语言程序常见错误与调试方法

C语言程序常见错误与调试方法
C Programming
(三)C语言程序调试方法 3、对运行结果作分析,看它是否符合要求。
• 有的初学者看到运行结果就认为没问题了,不作 认真分析,这是危险的。 • 有时,数据比较复杂,难以立即判断结果是否正 确。可以事先考虑好一批“试验数据”,输入这 些数据可以很容易判断结果正确与否。 • 事实上,当程序复杂时很难把所有的可能情况全 部都试到,选择典型的临界数据作试验即可。
C Programming
3、警告 • “警告”是指被编译程序怀疑有错,但不确定, 有时可强行编译通过。例如:主函数没有返回值 时没有加void声明、double型数据被转换为float 型数据等。 • 这些警告中,有些会导致错误,有些则可以编译 通过。
C Programming
(三)C语言程序调试方法
• 编译诊断的语法错误分为3类:致命错误、错误和 警告。
C Programming
1、致命错误 • “致命错误”大多数是编译程序内部发生错误。 • 发生这类错误时,编译被迫终止,只能重新启动 编译程序。幸运的是,这类错误很少发生,但是 为了安全,编译前最好先保存程序。
C Programming
2、错误 • “错误”通常是在编译时,语法不当所引起的, 例如括号不匹配、变量为声明等。 • 产生这类错误时,编译程序会出现报错提示,根 据提示对源程序进行修改即可。这类错误是出现 最频繁的。
C Programming
1、语法错误
• 语法错误是指那些由于编程中输入不符合语法规 则产生的错误。 • 例如:表达式不完整、缺少必要的标点符号、关 键字输入错误、数据类型不匹配、循环语句或选 择语句的关键字不配对等。 • 通常,编译器对程序进行编译的过程中,会把检 测到的语法错误以提示的方式列举出来。

C语言常见错误及解决方法

C语言常见错误及解决方法

C语言常见错误及解决方法C语言是一种广泛应用于系统软件和应用软件开发的编程语言。

然而,由于其语法较为复杂,初学者在编写C语言程序时常会犯一些常见错误。

本文将介绍几种常见的C语言错误及解决方法。

1. 语法错误(Syntax Error)语法错误是指程序中存在错误的语法结构,编译器无法理解这些语法结构,从而导致编译错误。

常见的语法错误包括拼写错误、大小写错误、标点符号错误等。

解决方法是仔细检查代码中的语法结构,确保语法正确。

2. 声明错误(Declaration Error)声明错误是指在程序中存在未定义或重复定义的变量、函数等声明。

解决方法是确保声明的变量和函数在使用之前已被正确地定义,避免重复定义。

3. 类型错误(Type Error)类型错误是指在程序中使用了错误的数据类型。

例如,将整数赋值给浮点型变量,或将字符赋值给整型变量等。

解决方法是确保赋值的数据类型与变量的数据类型匹配。

4. 逻辑错误(Logic Error)逻辑错误是指程序在运行过程中逻辑上的错误,导致程序得出错误的结果。

例如,使用错误的循环条件,导致循环无法正常结束。

解决方法是仔细检查程序的逻辑,确保逻辑正确,避免逻辑错误。

5. 数组越界错误(Array Out-of-Bounds Error)数组越界错误是指访问数组时超出了数组的边界。

例如,对一个长度为5的数组进行赋值时,访问第6个元素。

解决方法是确保对数组的访问不超过数组的边界。

6. 内存泄露错误(Memory Leak Error)内存泄露错误是指在程序中申请内存空间后,未正确释放该空间,导致内存的持续分配而无法释放。

解决方法是在申请内存空间后,使用相应的释放函数(如free()释放内存空间。

7. 死循环错误(Infinite Loop Error)死循环错误是指程序中存在无法结束的循环结构。

例如,循环条件永远为真,导致程序无法终止。

解决方法是仔细检查循环条件,确保循环能够正常结束。

C语言编译错误信息提示

C语言编译错误信息提示

C语言编译错误信息提示1.Array bounds missing数组的界限“]”丢失。

在源文件中定义了一个数组,但此数组没有以右方括号结束。

2.Array size too large数组长度太大。

定义的数组太大,可用内存不够。

3.Bad configuration file配置文件不正确。

TURBOC.CFG配置文件中包含不是合适命令行选择项的非注解文字。

配置文件命令选择项必须以一短横线(-)开始。

4.Bad file name format in include directive使用include指令时,文件名格式不正确。

Include文件名必须用引号(“filename.h”)或尖括号(<filename.h>)括起来,否则将产生此类错误。

如果使用了宏,则产生的扩展正文也不正(因为无引号)。

5.Cannot modify a const object不能修改一个常量对象。

对定义为常量的对象进行不合法操作(如常量赋值)引起此类错误。

6.Case outside of switchCase出现在switch外,编译程序发现Case语句出现在switch句句外面,通常是由于括号不匹配造成的。

7.Case statement missingCase语句漏掉。

Case语句必须包含一以冒号终结的常量表达式。

可能的原因是丢了冒号或在冒号前多了别的符号。

8.Case syntax errorCase语法错误。

Case中包含了一些不正确的符号。

9.Character constant too long字符常量太长。

字符常量只能是一个或两个字符长。

10.Compound statement missing复合语句漏掉了大括号“}”,编译程序扫描到源文件末时,未发现结束大括号,通常是由于大括号不匹配造成的。

11.Could not find ‘xxxxxxxx.xxx’找不到’xxxxxxxx’文件。

C语言中的常见错误及解决方法

C语言中的常见错误及解决方法

C语言中的常见错误及解决方法C语言作为一种广泛应用于软件开发领域的编程语言,常常出现一些让初学者或经验不足的程序员困惑的错误。

本文将介绍C语言中常见的错误,并提供解决这些错误的方法。

一、语法错误语法错误是编程过程中最常见的错误之一。

它们通常由于代码中存在语法错误或书写错误而导致。

以下是一些常见的语法错误和解决方法:1.1 缺少分号分号是C语言中语句结束的标志,如果未在语句末尾添加分号,编译器会报错。

解决方法是仔细检查代码,确保每个语句的末尾都有分号。

1.2 括号不匹配在C语言中,括号必须成对出现。

如果括号未正确匹配,编译器会报错。

解决方法是仔细检查代码,确保每个左括号都有对应的右括号。

1.3 大小写错误C语言对大小写敏感,因此函数和变量的命名必须与其声明中的大小写完全匹配。

解决方法是检查代码中的命名,并确保其大小写匹配。

1.4 未定义的变量使用未定义的变量会导致编译器报错。

解决方法是确保在使用变量之前先进行声明或定义。

二、逻辑错误逻辑错误在语法上没有问题,但程序的逻辑流程存在缺陷,导致程序运行不符合预期。

以下是一些常见的逻辑错误和解决方法:2.1 数组越界访问在C语言中,数组的索引从0开始。

如果超出数组的索引范围进行访问,会导致程序崩溃或产生意想不到的结果。

解决方法是检查数组索引,并确保它们在合法范围内。

2.2 逻辑运算错误逻辑运算符(如&&、||和!)在C语言中用于组合表达式。

但是,如果这些运算符的使用不当,可能会导致逻辑错误。

解决方法是仔细检查逻辑运算表达式,并确保其符合预期的逻辑规则。

2.3 循环错误循环是C语言中常用的结构之一,但循环中的错误可能导致程序无限循环或不执行循环体。

解决方法是检查循环条件和循环变量,确保它们能正确地控制循环的执行。

三、内存错误内存错误是C语言中常见的错误类型之一。

以下是一些常见的内存错误和解决方法:3.1 内存泄漏内存泄漏指的是在程序中未正确释放分配的内存空间。

C语言常见错误及解决方法

C语言常见错误及解决方法

C语言常见错误及解决方法C语言是一门非常重要的编程语言,但是在学习和使用过程中,常常会遇到一些错误。

这些错误可能会导致程序无法正常运行或产生错误的结果。

在这篇文章中,我将介绍一些C语言常见错误及解决方法,希望对你在学习和使用C语言时能有所帮助。

1.语法错误语法错误是最常见的错误之一,它通常是由错别字、缺少分号、括号不匹配等导致的。

解决这类错误的方法是仔细检查代码,并根据编译器的错误提示进行修改。

2.类型错误类型错误指的是错误地使用了不匹配的数据类型。

比如将整数型赋值给浮点型变量,或者将字符型变量赋值给整型变量等。

解决这类错误的方法是确保变量的数据类型匹配,并进行必要的类型转换。

3.空指针错误空指针错误是指使用了未初始化或已被释放的指针变量。

当你尝试使用这些指针变量时,会导致程序崩溃或产生不可预测的结果。

解决这类错误的方法是在使用指针之前,为其分配内存空间并进行初始化。

4.内存泄漏内存泄漏是指在程序运行过程中,分配的内存空间没有被正确释放。

这会导致内存占用越来越多,最终导致程序崩溃或系统资源不足。

解决这类错误的方法是在不再需要使用一些内存空间时,使用free(函数释放它。

5.数组越界数组越界是指访问数组时超过了其允许的范围。

这会导致程序崩溃或产生不可预测的结果。

解决这类错误的方法是确保数组的索引在有效范围内,并正确使用循环等控制结构。

6.逻辑错误逻辑错误是指程序的逻辑顺序有误,导致程序无法达到预期的目标。

解决这类错误的方法是仔细分析程序的逻辑流程,并进行必要的修改和调试。

7.死循环死循环是指程序进入一个无法正常退出的循环。

这可能是由于循环条件错误或循环体内没有设置循环终止条件所导致的。

解决这类错误的方法是确保循环条件正确,同时在必要的情况下添加循环终止条件。

8.文件操作错误在进行文件操作时,可能会发生文件打开失败、读写错误等问题。

解决这类错误的方法是检查文件路径是否正确、文件是否存在以及对文件的读写权限等,并根据具体情况进行调整。

C语言编译中的常见错误

C语言编译中的常见错误

C语言编译中的常见错误1、警告类错误?…XXX‟ declare but never used变量XXX已定义但从未用过。

?…XXX‟ is assigned a value which is never used变量XXX已赋值但从未用过。

?Code has no effect 程序中含有没有实际作用的代码。

?Non-portable pointer conversion不适当的指针转换,可能是在应该使用指针的地方用了一个非0的数值。

?Possible use of …XXX‟ before definition表达式中使用了未赋值的变量?Redeclaration of …main‟一个程序文件中主函数main不止一个。

?Suspicious pointer conversion可疑的指针转换。

通常是使用了基本类型不匹配的指针。

?Unreachable code程序含有不能执行到的代码。

2、错误或致命错误?Compound statement missing } in function main程序结尾缺少括号}。

?“}”expected;“(”expected等复合语句或数组初始化的结尾缺少“)”;“(”。

?Case outside of switch case不属于Switch结构,多由于switch结构中的花括号不配对所致。

?Case statement missing …:‟switch结构中的某个case之后缺少冒号。

?Constant expression required定义数组时指定的数组长度不是常量表达式。

?Declaration syntax error 结构体或联合类型的定义后缺少分号。

?Declaration was expected 缺少说明,通常是因为缺少分界符如逗号、分号、右圆括号等所引起的。

?Default outside switch Default部分放到了switch结构之外,一般是因为花括号不匹配而引起的。

c语言常见错误提示

c语言常见错误提示

C语言常见错误提示(英汉对照)Turbo C 2.0编译错误信息详解Turbo C编译程序检查源程序中三类出错信息:致命错误、一般错误、警告。

致命错误:通常是内部编译错误。

发生致命错误时,编译立即停止,必须采取一些适当的措施并重新编译。

一般错误:指程序的语法错误、磁盘或内存存取错误或命令错误。

警告:它并不阻止编译进行。

它指出一些值得怀疑的情况,而这些情况本身又有可能合理地成为源程序的一部分。

注意:编译程序指产生被检测到的信息,因为C并不限定在正文的某行放一条语句,这样,真正产生错误的行可能在编译指出的前一行或几行。

Ambiguous operators need parentheses 不明确的运算需要用括号括起Ambiguous symbol “xxx” 不明确的符号Argument list syntax error 参数表语法错误Array bounds missing 丢失数组界限符Array size toolarge 数组尺寸太大Bad character in paramenters 参数中有不适当的字符Bad file name format in include directive 包含命令中文件名格式不正确Bad ifdef directive synatax 编译预处理ifdef有语法错Bad undef directive syntax 编译预处理undef有语法错Bit field too large 位字段太长Call of non-function 调用未定义的函数Call to function with no prototype 调用函数时没有函数的说明Cannot modify a const object 不允许修改常量对象Case outside of switch 漏掉了case 语句Case syntax error Case 语法错误Code has no effect 代码不可述不可能执行到Compound statement missing{ 分程序漏掉"{"Conflicting type modifiers 不明确的类型说明符Constant expression required 要求常量表达式Constant out of range in comparison 在比较中常量超出范围Conversion may lose significant digits 转换时会丢失意义的数字Conversion of near pointer not allowed 不允许转换近指针Could not find file “xxx” 找不到XXX文件Declaration missing ; 说明缺少";"Declaration syntax error 说明中出现语法错误Default outside of switch Default 出现在switch语句之外Define directive needs an identifier 定义编译预处理需要标识符Division by zero 用零作除数Do statement must have while Do-while语句中缺少while部分Enum syntax error 枚举类型语法错误Enumeration constant syntax error 枚举常数语法错误Error directive :xxx 错误的编译预处理命令Error writing output file 写输出文件错误Expression syntax error 表达式语法错误Extra parameter in call 调用时出现多余错误File name too long 文件名太长Function call missing ) 函数调用缺少右括号Fuction definition out of place 函数定义位置错误Fuction should return a value 函数必需返回一个值Goto statement missing label Goto语句没有标号Hexadecimal or octal constant too large16进制或8进制常数太大Illegal character “x” 非法字符xIllegal initialization 非法的初始化Illegal octal digit 非法的8进制数字Illegal pointer subtraction 非法的指针相减Illegal structure operation 非法的结构体操作Illegal use of floating point 非法的浮点运算Illegal use of pointer 指针使用非法Improper use of a typedefsymbol 类型定义符号使用不恰当In-line assembly not allowed 不允许使用行间汇编Incompatible storage class 存储类别不相容Incompatible type conversion 不相容的类型转换Incorrect number format 错误的数据格式Incorrect use of default Default使用不当Invalid indirection 无效的间接运算Invalid pointer addition 指针相加无效Irreducible expression tree 无法执行的表达式运算Lvalue required 需要逻辑值0或非0值Macro argument syntax error 宏参数语法错误Macro expansion too long 宏的扩展以后太长Mismatched number of parameters in definition定义中参数个数不匹配Misplaced break 此处不应出现break语句Misplaced continue 此处不应出现continue语句Misplaced decimal point 此处不应出现小数点Misplaced elif directive 不应编译预处理elifMisplaced else 此处不应出现elseMisplaced else directive 此处不应出现编译预处理else Misplaced endif directive 此处不应出现编译预处理endif Must be addressable 必须是可以编址的Must take address of memory location 必须存储定位的地址No declaration for function “xxx” 没有函数xxx的说明No stack 缺少堆栈No type information 没有类型信息Non-portable pointer assignment 不可移动的指针(地址常数)赋值Non-portable pointer comparison 不可移动的指针(地址常数)比较Non-portable pointer conversion 不可移动的指针(地址常数)转换Not a valid expression format type 不合法的表达式格式Not an allowed type 不允许使用的类型Numeric constant too large 数值常太大Out of memory 内存不够Parameter “xxx” is never used 能数xxx没有用到Pointer required on left side of -> 符号->的左边必须是指针Possible use of “xxx” before definition在定义之前就使用了xxx(警告)Possibly incorrect assignment 赋值可能不正确Redeclaration of “xxx” 重复定义了xxxRedefinition of “xxx” is not identicalxxx的两次定义不一致Register allocation failure 寄存器定址失败Repeat count needs an lvalue 重复计数需要逻辑值Size of structure or array not known结构体或数给大小不确定Statement missing ; 语句后缺少";"Structure or union syntax error 结构体或联合体语法错误Structure size too large 结构体尺寸太大Sub scripting missing ] 下标缺少右方括号Superfluous & with function or array函数或数组中有多余的"&"Suspicious pointer conversion 可疑的指针转换Symbol limit exceeded 符号超限Too few parameters in call 函数调用时的实参少于函数的参数不Too many default cases Default太多(switch语句中一个)Too many error or warning messages 错误或警告信息太多Too many type in declaration 说明中类型太多Too much auto memory in function 函数用到的局部存储太多Too much global data defined in file 文件中全局数据太多Two consecutive dots 两个连续的句点Type mismatch in parameter xxx 参数xxx类型不匹配Type mismatch in redeclaration of “xxx”xxx重定义的类型不匹配Unable to create output file “xxx” 无法建立输出文件xxx Unable to open include file “xxx” 无法打开被包含的文件xxx Unable to open input file “XXX” 无法打开输入文件xxx Undefined label “XXX” 没有定义的标号xxxUndefined structure “XXX” 没有定义的结构xxxUndefined symbol “XXX” 没有定义的符号xxxUnexpected end of file in comment started on line xxx从xxx行开始的注解尚未结束文件不能结束Unexpected end of file in conditional started on line xxx从xxx 开始的条件语句尚未结束文件不能结束Unknown assemble instruction 未知的汇编结构Unknown option 未知的操作Unknown preprocessor directive: “XXX” 不认识的预处理命令xxx Unreachable code 无路可达的代码Unterminated string or character constant 字符串缺少引号User break 用户强行中断了程序Void functions may not return a valueVoid类型的函数不应有返回值Wrong number of arguments 调用函数的参数数目错“XXX” not an argument xxx不是参数“XXX” not part of structure xxx不是结构体的一部分xxx statement missing ( xxx语句缺少左括号xxx statement missing ) xxx语句缺少右括号xxx statement missing ; xxx缺少分号xxx'' declared but never used 说明了xxx但没有使用xxx'' is assigned a value which is never used给xxx赋了值但未用过Zero length structure 结构体的长度为零运算符与表达式: 5. `parameter 参数 2 条件语句1.constant 常量 6.static 静态的condition2. variable 变量7.extern 外部的statement) 选择select3. identify 标识符指针:表达式expression4. keywords 关键字 1. pointer 指针逻辑表达式logical expression5. sign 符号 2. argument 参数关系表达式Relational expression6. operator 运算符 3. array 数组优先priority7. statement语句 4. declaration 声明运算operation8. syntax 语法 5. represent 表示结构structure9. expression 表达式 6. manipulate 处理 3 循环语句10. initialition 初始化结构体、共用体、链表(circle statement) 循环circle11. number format 数据格式 1 structure 结构条件condition12 declaration 说明 2 member成员变量variant13. type conversion 类型转换 3 tag 标记过程process14.define 、definition 定义 4 function 函数优先priority条件语句: 5 enumerate 枚举运算operation1.select 选择 6 union 联合(共用体) 4 函数2. expression 表达式7 create 创建(function) 调用call3. logical expression 逻辑表达式8 insert 插入返回值return value4. Relational expression 关系表达式9 delete 删除函数function5.priority优先10 modify 修改声明declare6. operation运算文件参数parameter7.structure 结构1、file 文件静态的static循环语句:2、open 打开外部的extern1.circle 循环3、close 关闭 5 数组和指针(array and2. condition 条件4、read 读pointer) 数组array3. variant 变量5、write 写引用reference4. process过程6、error 错误元素element5.priority优先序号主要章节常用英汉对照词汇备注地址address6. operation运算 1 运算符与表达式排序sort数组:(operator and expression )汉语英语字符character1. array 数组常量constant 字符串string2. reference 引用变量variable 应用application3. element 元素标识符identify 指针pointer4. address 地址关键字keywords 参数argument5. sort 排序符号sign 数组array6. character 字符运算符operator 声明declaration. string 字符串语句statement 表示represent8. application 应用语法syntax 处理manipulate函数:表达式Expression 6 结构体、1.call 调用初始化Initialization 共用体2.return value 返回值数据格式number format (structures union 结构structure3.function 函数类型转换type conversion 成员member4. declare 声明定义Define 、definition 标记tag函数function archaic a.己废的,古老的teaching programming 编程教学枚举enumerate mainmodule 主模块lengthy a.冗长的,漫长的联合( 共用体) union sufficient a.充分的,足够的alter vi./vt.改变创建create submodule 子模块flaw n.缺点裂纹插入insert data processing 数据处理devclop vt.发达删除delete modify v.修正,修改separate a.各别的修改modify business application 商业应用recompile v.编译7 文件outline n.轮廓,概要assist n.帮助(file) 文件file scientific application 科学应用cycle n.循环打开open compose分解technician n.技师关闭close lexical a.字典的,词汇的remove vt.移动,除去读read code 代码straight line 直线写write non-programmer n.非编程人员category n.种类,类项错误error node vt改为密码rectangle n.长方形,矩形Program Design 程序设计notation n.记号法,表示法,注释P-code p代码writing program 编写程序pseudocode n.伪代码virtrally ad.事实上standardize vt.使标准化verbosity n.唠叨,冗长symology n.象征学象征的使用coding the program 编程commas n.逗点逗号register n.寄存器simplify vt.单一化,简单化record n.记录to summaries 总之,总而言之programming 程序documentation 文档by convention 按照惯例revision n.校订,修正subrecord n.子记录cyptic n.含义模糊的,隐藏的programmer n.程序员flowchart/flow 程表/流程diamond-shaped a,菱形的occupy vt.占领,住进data division 数据部bracket n.括号logic n.逻辑,逻辑学visual a.视觉的decision n判断BASIC 初学者通用符号指令代码procedure division 过程部obviate 除去,排除machine code 机器代码represent vt.表现,表示,代表terminal n. a终端机,终端的teaching language 教学语言comprise vt.包含构成keyword n.关键字debug n.DOS命令,调试structured techniques结构化技术card reader 阅读器simplicity n.单纯,简朴operator n.运算符,算子underline vt.下划线compactness a.紧凑的,紧密的straightforward a.笔直的率直的translator program 译程序timesharing system 分时系统commercial package 商业软件包monadic a. monad(单位)的description n.描述,说明subroutine n.子程序Programming 程序设计interactive language 交互式语言generator n.产生器,生产者dec/binary n.二进制break n.中断driver module 驱动模块source language 源语manufacturer n.制造业者mathematician n.专家shift 变化,转移,移位structure chart 结构图line by line 逐行machine language 机器dialect n.方言,语调operator n.作符overflow n.溢出the program flow 程序流translate vt.翻译,解释machine instruction 机器指令expense n.费用,代价forerunner n.先驱arithmetic n.算术,算法manager module 管理模块modular 摸块化computer language 计算机语uniformity n.同样,划一ancestor n.祖宗composite symbol 复合型符号worder module 工作模块cumbersome a.讨厌的,麻烦的assembly language 汇编语assignment n.赋值double :声明双精度变量或函数floating point number浮点数int:声明整型变量或函数proliferation n.增服struct:声明结构体变量或函数high-level language高级语break:跳出当前循环pointer n.指针natural language 自然语言else :条件语句否定分支(与if 连用)array n.数组矩阵,long :声明长整型变量或函数source text 源文本switch :用于开关语句subscript n.下标case:开关语句分支intermediate language 中间语言enum :声明枚举类型type conversion 类型转换register:声明积存器变量software development 软件开发typedef:用以给数据类型取别名(当然还有其他作用)address arithmetic 地址运算char :声明字符型变量或函数map vt.映射,计划extern:声明变量是在其他文件正声明(也可以看做是引用变量)denote vt.指示,表示return :子程序返回语句(可以带参数,也看不带参数)maintenance cost 维护费用union:声明联合数据类型subprogram n.子程序const :声明只读变量legibility n.易读性,易识别float:声明浮点型变量或函数separate compilation 分离式编泽short :声明短整型变量或函数amend vt.修正,改善unsigned:声明无符号类型变量或函数alphabetic a.照字母次序的continue:结束当前循环,开始下一轮循环consumer n.消费者for:一种循环语句(可意会不可言传)digit n.数字位数signed:生命有符号类型变量或函数enormous a.巨大的,庞大的void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)numeric expression 数值表达式default:开关语句中的“其他”分支reliability n.可信赖性,可信度goto:无条件跳转语句tap n.轻打,轻敲,选择sizeof:计算数据类型长度safety n.安全,安全设备volatile:说明变量在程序执行中可被隐含地改变print zone 打印区do :循环语句的循环体property n.财产,所有权while :循环语句的循环条件column n.列correctness n.正确,static :声明静态变量functionality n.机能if:条件语句semicolon n.分号portable a.叮携带的,可搬运的auto :声明自动变量一般不使用survey n.概观.altoggle n.肘节开关task n.作,任务declaration n.宣告说明source program 源程序mufti-dimension array 多维数组object program 目标程序。

C语言错误种类总结

C语言错误种类总结

Turbo C(V2.0)编译错误信息编译错误信息说明:Turbo C 的源程序错误分为三种类型:致命错误、一般错误和警告。

其中,致命错误通常是内部编译出错;一般错误指程序的语法错误、磁盘或内存存取错误或命令行错误等;警告则只是指出一些得怀疑的情况,它并不防止编译的进行。

下面按字母顺序A~Z分别列出致命错误及一般错误信息,英汉对照及处理方法:(一)、致命错误英汉对照及处理方法:A-B致命错误Bad call of in-line function(内部函数非法调用)分析与处理:在使用一个宏定义的内部函数时,没能正确调用。

一个内部函数以两个下划线(__)开始和结束。

Irreducable expression tree (不可约表达式树)分析与处理:这种错误指的是文件行中的表达式太复杂,使得代码生成程序无法为它生成代码.这种表达式必须避免使用。

Register allocation failure (存储器分配失败)分析与处理:这种错误指的是文件行中的表达式太复杂,代码生成程序无法为它生成代码。

此时应简化这种繁杂的表达式或干脆避免使用它。

(二)、一般错误信息英汉照及处理方法#operator not followed by maco argument name(#运算符后没跟宏变元名)分析与处理:在宏定义中,#用于标识一宏变串.“#”号后必须跟一个宏变元名。

’xxxxxx' not anargument (’xxxxxx’不是函数参数)分析与处理:在源程序中将该标识符定义为一个函数参数,但此标识符没有在函数中出现。

Ambiguous symbol 'xxxxxx'(二义性符号'xxxxxx’)分析与处理:两个或多个结构的某一域名相同,但具有的偏移、类型不同。

在变量或表达式中引用该域而未带结构名时,会产生二义性,此时需修改某个域名或在引用时加上结构名.Argument # missing name (参数#名丢失)分析与处理:参数名已脱离用于定义函数的函数原型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中文对照:(编译错误)标识符1不是标识符2的成员
分析:程序错误地调用或引用结构体、共用体、类的成员
error C2041: illegal digit 'x' for base 'n'
中文对照:(编译错误)对于n进制来说数字x非法
分析:一般是八进制或十六进制数表示错误,例如“int i = 081;”语句中数字‘8’不是八进制的基数
分析:一般是输入了中文标点符号,例如“char error = 'E';”中“;”为中文标点符号
error C2019: expected preprocessor directive, found 'character'
中文对照:(编译错误)期待预处理命令,但有无效字符
分析:一般是预处理命令的#号后误输入其他无效字符,例如“#!define TRUE 1”
error C2017: illegal escape sequence
中文对照:(编译错误)转义字符非法
分析:一般是转义字符位于' '或" "之外,例如“char error = ' '\n;”
error C2018: unknown character '0xhh'
中文对照:(编译错误)未知的字符0xhh
C语言程序编译常见错误对照
fatal number; stopping compilation
中文对照:(编译错误)错误太多,停止编译
分析:修改之前的错误,再次编译
fatal error C1004: unexpected end of file found
中文对照:(编译错误)预处理命令前面只允许空格
分析:每一条预处理命令都应独占一行,不应出现其他非空格字符
error C2015: too many characters in constant
中文对照:(编译错误)常量中包含多个字符
分析:字符型常量的单引号中只能有一个字符,或是以“\”开始的一个转义字符,例如“char error = 'error';”
error C2052: 'type' : illegal type for case expression
中文对照:(编译错误)case表达式类型非法
分析:case表达式必须是一个整型常量(包括字符型)
error C2057: expected constant expression
分析:switch表达式必须是整型(或字符型),例如“switch ("a")”中表达式为字符串,这是非法的
error C2051: case expression not constant
中文对照:(编译错误)case表达式不是常量
分析:case表达式应为常量表达式,例如“case "a"”中“"a"”为字符串,这是非法的
error C2021: expected exponent value, not 'character'
中文对照:(编译错误)期待指数值,不能是字符
分析:一般是浮点数的指数表示形式有误,例如123.456E
error C2039: 'identifier1' : is not a member of 'identifier2'
error C2010: 'character' : unexpected in macro formal parameter list
中文对照:(编译错误)带参宏的形式参数表中出现未知字符
分析:例如“#define s(r|) r*r”中参数多了一个字符‘|’
error C2014: preprocessor command must start as first nonwhite space
中文对照:(编译错误)无法打开头文件xxx:没有这个文件或路径
分析:头文件不存在、或者头文件拼写错误、或者文件为只读
fatal error C1903: unable to recover from previous error(s); stopping compilation
中文对照:(编译错误)无法从之前的错误中恢复,停止编译
中文对照:(编译错误)文件未结束
分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*…*/”不完整等
fatal error C1083: Cannot open include file: 'xxx': No such file or directory
中文对照:(编译错误)宏定义时出现了意外的xxx
分析:宏定义时宏名与替换串之间应有空格,例如“#define TRUE"1"”
error C2009: reuse of macro formal 'identifier'
中文对照:(编译错误)带参宏的形式参数重复使用
分析:宏定义如有参数不能重名,例如“#define s(a,a) (a*a)”中参数a重复
分析:引起错误的原因很多,建议先修改之前的错误
error C2001: newline in constant
中文对照:(编译错误)常量中创建新行
分析:字符串常量多行书写
error C2006: #include expected a filename, found 'identifier'
中文对照:(编译错误)#include命令中需要文件名
分析:一般是头文件未用一对双引号或尖括号括起来,例如#include stdio.h
error C2007: #define syntax
中文对照:(编译错误)#define语法错误
分析:例如“#define”后缺少宏名,例如“#define”
error C2008: 'xxx' : unexpected in macro definition
error C2048: more than one default
中文对照:(编译错误)default语句多于一个
分析:switch语句中只能有一个default,删去多余的default
error C2050: switch expression not integral
中文对照:(编译错误)switch表达式不是整型的
相关文档
最新文档