C语言错误种类总结

时间:2019-05-12 12:34:11下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言错误种类总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《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(参数#名丢失)分析与处理:参数名已脱离用于定义函数的函数原型。如果函数以原型定义,该函数必须包含所有的参数名。Argument list syntax error(参数表出现语法错误)分析与处理:函数调用的参数间必须以逗号隔开,并以一个右括号结束。若源文件中含有一个其后不是逗号也不是右括号的参数,则出错。Array bounds missing(数组的界限符“]”丢失)分析与处理:在源文件中定义了一个数组,但此数组没有以下右方括号结束。

Array size too large(数组太大)分析与处理:定义的数组太大,超过了可用内存空间。Assembler statement too long(汇编语句太长)分析与处理:内部汇编语句最长不能超过480字节。Bad configuration file(配置文件不正确)分析与处理:TURBOC.CFG配置文件中包含的不是合适命令行选择项的非注解文字。配置文件命令选择项必须以一个短横线开始。Bad file name format in include directive(包含指令中文件名格式不正确)分析与处理:包含文件名必须用引号(“filename.h”)或尖括号()括起来,否则将产生本类错误。如果使用了宏,则产生的扩展文本也不正确,因为无引号没办法识别。Bad ifdef directive syntax(ifdef指令语法错误)分析与处理:#ifdef必须以单个标识符(只此一个)作为该指令的体。Bad ifndef directive syntax(ifndef指令语法错误)分析与处理:#ifndef 必须以单个标识符(只此一个)作为该指令的体。

Bad undef directive syntax(undef指令语法错误)分析与处理:#undef指令必须以单个标识符(只此一个)作为该指令的体。

Bad file size syntax(位字段长语法错误)分析与处理:一个位字段长必须是1—16位的常量表达式。Call of non-functin(调用未定义函数)分析与处理:正被调用的函数无定义,通常是由于不正确的函数声明或函数名拼错而造成。

Cannot modify a const object(不能修改一个长量对象)分析与处理:对定义为常量的对象进行不合法操作(如常量赋值)引起本错误。

Case outside of switch(Case 出现在switch外)分析与处理:编译程序发现Case语句出现在switch语句之外,这类故障通常是由于括号不匹配造成的。Case statement missing(Case语句漏掉)分析与处理:Case语必须包含一个以冒号结束的常量表达式,如果漏了冒号或在冒号前多了其它符号,则会出现此类错误。Character constant too long(字符常量太长)分析与处理:字符常量的长度通常只能是一个或两个字符长,超过此长度则会出现这种错误。

Compound statement missing(漏掉复合语句)分析与处理:编译程序扫描到源文件未时,未发现结束符号(大括号),此类故障通常是由于大括号不匹配所致。Conflicting type modifiers(类型修饰符冲突)分析与处理:对同一指针,只能指定一种变址修饰符(如near 或far);而对于同一函数,也只能给出一种语言修饰符(如Cdecl、pascal或interrupt)。

Constant expression required(需要常量表达式)分析与处理:数组的大小必须是常量,本错误通常是由于#define常量的拼写错误引起。

Could not find file 'xxxxxx.xxx'(找不到'xxxxxx.xx'文件)分析与处理:编译程序找不到命令行上给出的文件。Declaration missing(漏掉了说明)分析与处理:当源文件中包含了一个struct或 union域声明,而后面漏掉了分号,则会出现此类错误。

Declaration needs type or storage class(说明必须给出类型或存储类)分析与处理:正确的变量说明必须指出变量类型,否则会出现此类错误。

Declaration syntax error(说明出现语法错误)分析与处理:在源文件中,若某个说明丢失了某些符号或输入多余的符号,则会出现此类错误。

Default outside of switch(Default语句在switch语句外出现)分析与处理:这类错误通常是由于括号不匹配引起的。

Define directive needs an identifier(Define指令必须有一个标识符)分析与处理:#define 后面的第一个非空格符必须是一个标识符,若该位置出现其它字符,则会引起此类错误。Division by zero(除数为零)分析与处理:当源文件的常量表达式出现除数为零的情况,则会造成此类错误。Do statement must have while(do语句中必须有While关键字)分析与处理:若源文件中包含了一个无While关键字的 do语句,则出现本错误。

DO while statement missing((Do while语句中漏掉了符号 “(”)分析与处理:在do语句中,若 while关键字后无左括号,则出现本错误。Do while statement missing;(Do while语句中掉了分号)分析与处理:在DO语句的条件表达式中,若右括号后面无分号则出现此类错误。

Duplicate Case(Case情况不唯一)分析与处理:Switch语句的每个case必须有一个唯一的常量表达式值。否则导致此类错误发生。Enum syntax error(Enum语法错误)分析与处理:若enum说明的标识符表格式不对,将会引起此类错误发生。

Enumeration constant syntax error(枚举常量语法错误)分析与处理:若赋给enum类型变量的表达式值不为常量,则会导致此类错误发生。

Error Directive : xxxx(Error指令:xxxx)分析与处理:源文件处理#error指令时,显示该指令指出的信息。Error Writing output file(写输出文件错误)分析与处理:这类错误通常是由于磁盘空间已满,无法进行写入操作而造成。

Expression syntax error(表达式语法错误)分析与处理:本错误通常是由于出现两个连续的操作符,括号不匹配或缺少括号、前一语句漏掉了分号引起的。Extra parameter in call(调用时出现多余参数)分析与处理:本错误是由于调用函数时,其实际参数个数多于函数定义中的参数个数所致。

Extra parameter in call to xxxxxx(调用xxxxxxxx函数时出现了多余参数)File name too long(文件名太长)分析与处理:#include指令给出的文件名太长,致使编译程序无法处理,则会出现此类错误。通常DOS下的文件名长度不能超过 64个字符。

For statement missing)(For语名缺少“)”)分析与处理:在 for语句中,如果控制表达式后缺少右括号,则会出现此类错误。

For statement missing((For语句缺少“(”)For statement missing;(For 语句缺少“;”)分析与处理:在 for语句中,当某个表达式后缺少分号,则会出现此类错误。

Function call missing)(函数调用缺少“)”)分析与处理:如果函数调用的参数表漏掉了右手括号或括号不匹配,则会出现此类错误。

Function definition out of place(函数定义位置错误)Function doesn't take a variable number of argument(函数不接受可变的参数个数)Goto statement missing label(Goto语句缺少标号)If statement missing((If语句缺少“(”)If statement missing)(If语句缺少“)”)lllegal initalization(非法初始化)lllegal octal digit(非法八进制数)分析与处理:此类错误通常是由于八进制常数中包含了非八进制数字所致。

lllegal pointer subtraction(非法指针相减)lllegal structure operation(非法结构操作)lllegal use of floating point(浮点运算非法)lllegal use of pointer(指针使用非法)Improper use of a typedef symbol(typedef符号使用不当)Incompatible storage class(不相容的存储类型)Incompatible type conversion(不相容的类型转换)Incorrect commadn line argument:xxxxxx(不正确的命令行参数:xxxxxxx)Incorrect commadn file argument:xxxxxx(不正确的配置文件参数:xxxxxxx)Incorrect number format(不正确的数据格式)Incorrect use of default(deflult不正确使用)Initializer syntax error(初始化语法错误)Invaild indrection(无效的间接运算)Invalid macro argument separator(无效的宏参数分隔符)Invalid pointer addition(无效的指针相加)Invalid use of dot(点使用错)Macro argument syntax error(宏参数语法错误)Macro expansion too long(宏扩展太长)Mismatch number of parameters in definition(定义中参数个数不匹配)Misplaced break(break位置错误)Misplaced continue(位置错)Misplaced decimal point(十进制小数点位置错)Misplaced else(else 位置错)Misplaced else driective(clse指令位置错)Misplaced endif directive(endif指令位置错)Must be addressable(必须是可编址的)Must take address of memory location(必须是内存一地址)No file name ending(无文件终止符)No file names given(未给出文件名)Non-protable pointer assignment(对不可移植的指针赋值)Non-protable pointer comparison(不可移植的指针比较)Non-protable return type conversion(不可移植的返回类型转换)Not an allowed type(不允许的类型)Out of memory(内存不够)Pointer required on left side of(操作符左边须是一指针)Redeclaration of 'xxxxxx'('xxxxxx'重定义)Size of structure or array not known(结构或数组大小不定)Statement missing;(语句缺少“;”)

Structure or union syntax error(结构或联合语法错误)Structure size too large(结构太大)Subscription missing ](下标缺少‘]’)

Switch statement missing((switch 语句缺少“(”)Switch statement missing)(switch 语句缺少“)”)Too few parameters in call(函数调用参数太少)Too few parameter in call to'xxxxxx'(调用'xxxxxx'时参数太少)Too many cases(Cases太多)Too many decimal points(十进制小数点太多)Too many default cases(defaut太多)Too many exponents(阶码太多)Too many initializers(初始化太多)Too many storage classes in declaration(说明中存储类太多)Too many types in decleration(说明中类型太多)Too much auto memory in function(函数中自动存储太多)Too much global define in file(文件中定义的全局数据太多)Two consecutive dots(两个连续点)Type mismatch in parameter #(参数“#”类型不匹配)Type mismatch in parameter # in call to 'XXXXXXX'(调用'XXXXXXX'时参数#类型不匹配)Type missmatch in parameter 'XXXXXXX'(参数'XXXXXXX'类型不匹配)Type mismatch in parameter 'YYYYYYYY' in call to 'YYYYYYYY'(调用'YYYYYYY'时参数'XXXXXXXX'数型不匹配)Type mismatch in redeclaration of 'XXX'(重定义类型不匹配)Unable to creat output file 'XXXXXXXX.XXX'(不能创建输出文件'XXXXXXXX.XXX')Unable to create turboc.lnk(不能创建turboc.lnk)Unable to execute command 'xxxxxxxx'(不能执行'xxxxxxxx'命令)Unable to open include file 'xxxxxxx.xxx'(不能打开包含文件'xxxxxxxx.xxx')Unable to open inputfile 'xxxxxxx.xxx'(不能打开输入文件'xxxxxxxx.xxx')Undefined label 'xxxxxxx'(标号'xxxxxxx'未定义)Undefined structure 'xxxxxxxxx'(结构'xxxxxxxxxx'未定义)Undefined symbol 'xxxxxxx'(符号'xxxxxxxx'未定义)Unexpected end of file in comment started on line #(源文件在某个注释中意外结束)Unexpected end of file in conditional stated on line #(源文件在#行开始的条件语句中意外结束)Unknown preprocessor directive 'xxx'(不认识的预处理指令:'xxx')Untermimated character constant(未终结的字符常量)Unterminated string(未终结的串)Unterminated string or character constant(未终结的串或字符常量)User break(用户中断)Value required(赋值请求)While statement missing((While语句漏掉 '(')While statement missing)(While语句漏掉 ')')Wrong number of arguments in of 'xxxxxxxx'(调用'xxxxxxxx'时参数个数错误)

第二篇:语言形式种类

语言描写的几种形式

语言描写是指对人物说话时的内容、语气、声调等进行描写。写人的文章要想把人物写活,是离不开语言描写的。

人物的语言描写一般有五种:

一、提示语在前面

如:妈妈轻轻地摸了摸我的额头,心疼地说:“瞧你,这两天人都瘦了。以后可得注意保暖,不能再感冒了!”

先写某某说,然后写他所讲得话,这种对话描写,能够使读者先知道是谁的话,人物关系明白清楚。

二、提示语在后面

如:“瞧你,这两天都瘦了。以后可得注意保暖,不能再感冒了!”妈妈轻轻地摸了摸我的额头,心疼地说。

三、提示语在中间

如:“瞧你,这两天人都瘦了。”妈妈轻轻地摸了摸我的额头,心疼地说:“以后可得注意保暖,不能再感冒了!”

四、提示语在两边

如:妈妈轻轻地摸了摸我的额头,“瞧你,这两天人都瘦了。以后可得注意保暖,不能再感冒了!”她心疼地说。

五、没有提示语,直接引用人物说话的内容

这种形式必须在一定的环境里使用。如:“瞧你,这两天人都瘦了。以后可得注意保暖,不能再感冒了!”

我们在作文时,不要只用一种描述形式,可以几种描述形式交替使用。这样在表达形式上才不会显得单调。

人物对话描写的几种基本形式

成功的对话,对展示人物的身份、神态、情感及内心世界,揭示人物的思想品质,均起到十分重要的作用。而在不少学生的作文里,要么无对话,文章显得单调,树不起鲜明的人物形象;要么人物对话无特点,只会运用“某某说:‘„„’”这种常见格式。为此,以语文课本中人物对话描写中的四种形式为例,分析其特点和作用,以培养学生初步掌握人物对话描写的能力。

(一)牵羊式。提示语在前,引语在后,引语之前用冒号。即先交代谁说(说明性部分),后写说了些什么(引文部分)。

1、忽然,她跳起来拍着屁股说:“咱俩先换过来,我妈是高级裁缝,她能把裤子的口子缝得一点儿都看不出来。”(选自《羚羊木雕》)

2、奶奶突然说:“算了吧,这样多不好。”(选自《羚羊木雕》)

先写某某说,然后写他所讲得话,这种对话描写,能够使读者先知道是谁的话,人物关系明白清楚。

(二)推车式。引语在前,提示语在后,提示语后面用句号。先写所说的话(引文部分在前),下面写某某说(说明性文字在后)。把引话放在某某说的前面(某某说地后面用句号),其作用是为了强调所说的话。

1、“那只羚羊木雕哪儿去啦?”妈妈突然问我。“爸爸不是说给了我么 ?” 我小声地说。(选自《羚羊木雕》)

第一句,引文在前,是作者为了强调她母亲质问地话。说明性文字用“突然”,既说明事情发生得料想不到,又展示了她母亲发怒得神态。“我”以反问口气作答,突出了“我”的委屈与不满,说明性文字中的“小声”一词,既突出了“我”的害怕心理,又渲染了对话时的紧张气氛。

(三)挑担式。提示语在两个引语的中间,提示语后面用逗号。即将某某说插入引话的中间(说后边用逗号)。

这种对话描写,有三种情况:一是需要插入说话人的动作神情;二是某某说的话比较长,前面的又必须将引话与别人的对话紧密相接,把某某说(说明性文字)放在最后又相隔太远;三是一个人所说的话,在意思上前后有转折。

1、“妈妈!”孩子委屈地摇着我的手臂,喃喃地说,“有了熊皮,不是可以给阿婆做熊皮手套了吗?”(选自《这不是一颗流星》)

这部分说明性文字,“委屈”、“摇着”表神情动作,属于第一种情况。

2、“你这个人真是自不量力!”姑娘好象生了很大地气,瞪了老头一眼说,“你干一天活,挣几个钱,充什么大肚子汉呢?十五不要,十四不要,十二也不要,看在你来得早,凭着你那票子新鲜,依你,十块钱搬走吧!记住,原产墨西哥,免得叫人再拿扇子拍你!”(选自《花市》)

这句人物对话比较长,先承接他人的话,说明性部分承前启后,使后面的引文明白。如果将说明性文字放在后面,那就显得拖拉不明快。再特定环境中,如能恰到好处地运用第三种类型人物对话描写,能够增强表达效果。

3、“啊!你也天天上班!”我把他搂在怀里说,“妈妈干啥去了?”

(选自《夜走灵官峡》)

这个例句中,后边的话不是顺着前面的话的意思说的,在意义上有转折,所以在引话中插入说明性部分。

(四)省略式。即把说话人是谁省略掉。使用这种格式时应注意,必须使读者能够根据说话的语言环境清楚话是谁说的。

例:年轻干部手里摇着黑色纸扇,上下看了老头一眼,似笑非笑地说:

“老头,你晓得这是什么花?”

“令箭荷花!”

“原产哪里?”

“原产„„原产姑娘家里!”

年轻干部哈哈大笑。(选自《花市》)

以上所说地人物语言地四种表现形式,人物对话的位置为什么要变化呢?这主要是为了表现说话人的神态、情绪、心理及时间先后等,是为了让人物语言表达得更精确、更细致、更流畅,增强文章的感染力。

人物对话的另一类转述,即间接转述讲话的内容。它是由作者或文章的叙述人转述讲话的大意。它不用冒号和引号,提到说话人的地方,用第三人称。

例:接着,韩麦尔先生从这一件事谈到那一件事,谈到法国语言上来了。他说,法国语言是世界上最美的语言——最明白,最精确;又说,我们必须把它记在心里,永远别忘了它,亡了国当了奴隶的人民,只要牢牢记住他们的语言,就好象拿着一把打开监狱大门的钥匙。说到这里,他就翻书讲语法。(选自《最后一课》)

人物对话描写有几种形式

【举例】我推着撒了气的自行车来到一个个体修车摊前。

“小朋友,你要修车吗?”那位正在修车的叔叔停下手里的活主动打招呼说。

我说:“车带没气了,我还要赶快去上学。”

“你不用着急,我马上给你查一下。”说着他站了起来,接过车开始检查,“小毛病,只不过气门芯坏了。”

“要多少钱呀?”

他似乎明白我怕挨坑,伸手指指贴在一旁的服务公约说。“有价格,只收两角钱。”

我不好意思地笑笑,说:“谢谢叔叔。”

解答

1.人物的对话描写从格式上来讲,有四种形式,提示语在前,提示语在中,提示语在后和无提示语。

2.提示语在什么位置要决定于表达思想的需要。比如“小朋友,你要修车吗?”把提示语放在后面,可以表现出修车叔叔主动打招呼的热情态度。“说着他站了起来,接过车开始检查”把这句提示语放在中间,是因为提示语前后都有要说的话,表明他边说边做事的主动态度。总之,提示语在什么位置,不只是格式问题,主要是为了表情达意的需要。

“说之妙”

——人物对话描写形式的多样化训练

在记叙文写作中,人物描写是一个重要部分,人物语言描写则关系着人物形象成败,以下几种语言描写形式的训练,能够加强人物性格塑造,丰富语言表现的形式。

一、变换说话人的位置

在人物语言描写中,恰当地变换说话人的位置,能够避免单调乏味的陈述,使语言形式更加丰富、活泼。

1.提示语在前:我说:“我还有事呢,你先走吧!”

2.提示语在后:“还是老大孝顺。”姥姥说,我听了心里感到真不是滋味。

3.提示语在中间:“原来就为这点事呀,”老师听了忍不住说,“我还有以为你受了多大的委屈呢!”

4.没有提示语:

“姐姐,你怎么知道雨来啦?”

“那团乌云走过咱家窗前,我看到它的影子了。”

“姐姐,你怎么知道风来啦?”

“咱家屋后的竹林告诉我的。”

二、在“说”之前增加人物的动作描写

为了更好地表现出人物在说话时的动作状态,可以在语言表述之前增加人物的动作描写。如:

我高高地举起拳头,一锤砸在桌子上,大声说:“他凭什么这么污蔑我„„”

三、在“说”之前增加人物的神态描写

为了更好地表现出人物在说话时的神态表情,可以在语言表述之前增加人物的神态描写,也可以将动作描写和神态描写结合在一起使用。如:

1.她抬起头,双眼满含着晶莹的泪珠,嘴唇颤抖着说:“我不知道会是这样的结果„„”

2.吃过晚饭奶奶咧着掉了牙的嘴,笑呵呵地说:“一定要在12点放,你们去睡吧,到时候我叫你们。”那张刻满皱纹的脸像朵大菊花,昏黄的眼睛变得亮多了。

3.“哼,看你美的,你肯定不行。”哥哥不耐烦地把书扔给我,斜着眼望着我说。

四、替换“说”

在人物语言描写时,也可以用跟“说”类似意思的同义词来替换“说”,使语言表达的形式更为多样化一些。如:

1.他一声大吼:“这事是谁干的?”

2.全班齐声高喊:“我们愿意„„”

3.她轻声吟唱着:“好一朵美丽的茉莉花,芬芳美丽满枝桠„„”

五、隐藏“说”

在人物语言描写时,不必每句话都用“说”来引出对话的内容,可以结合动作和神态描写,直接表述对话的内容。如:

1.他头也不回,却字字掷地有声:“我决不会干这种事!”

2.她转过身,抬起一双泪眼:“对不起,我错了„„”

六、写作练习:

期中考试结束后,你的学习成绩下降,爸爸妈妈开完家长会回来,与你谈话,请采用以上的方法,写一段对话描写,200字左右。

第三篇:c语言常见错误

1.= 不等于 ==

从 Algol 派生出来的语言,如 Pascal 和 Ada,用 := 表示赋值而用 = 表示比较。而 C 语言则是用 = 表示赋值而用 == 表示比较。这是因为赋值的频率要高于比较,因此为其分配更短的符号。此外,C 可以多重赋值(如 a = b = c),并且可以将赋值嵌入到一个大的表达式或者语句中。这种便捷导致了一个潜在的问题:需要用比较的地方却写成了赋值。下面的语句看起来好像是要检查 x 是否等于 y :

if(x = y)

foo();

而实际上是将 y 的值赋值给 x,并检查结果是否非零。再看看下面的一个希望跳过空格、制表符和换行符的循环:

while(c == ’ ’ || c = ’t’ || c == ’n’)

c = getc(f);

在应该与 ’t’ 进行比较的地方程序员错误地使用了 =,而不是==。这个“比较”实际上是将’t’ 赋给 c,然后判断 c 的(新的)值是否为零。因为 ’t’ 不为零,所以这个“比较”一直为真,因此这是一个死循环。

一些编译器会对形如 e1 = e2 的条件给出一个警告以提醒用户。当你确实需要对一个变量进行赋值,然后再检查变量是否“非零”时,为了避免这种警告信息,应显式给出比较符。也就是将:

if(x = y)

foo();改写为:

if((x = y)!= 0)

foo();

2.多字符符号

一些 C 符号,如 /、* 或 =,只有一个字符。还有些 C 符号,如 /*、== 或标识符,具有多个字符。当编译器遇到紧连在一起的 / 和 * 时,它必须决定是将这两个字符识别为两个符号还是一个单独的符号。C 语言标准规定:“如果一个字符被识别为符号,则应该包含下一个字符看看包含此字符后构成的字符串是否仍然可以构成符号,如果可以则继续包含下一个字符,一直到不能构成符号为止。”。因此,如果 / 是符号的第一个字符,并且 / 后面紧随着一个 *,则这两个字符构成注释符开始标记。下面的语句看起来像是将 y 的值设置为 x 的值除以 p 所指向的值:

y = x/*p

/* p 指向除数 */;

实际上,因为 /* 是注释符开始标记,因此编译器会简单地“吞噬”程序文本,直到 */ 出现为止。换句话说,这条语句仅仅把 y 的值设置为 x 的值,而根本没有看到 p。我们应该将这条语句改为:

y = x / *p

/* p 指向除数 */;或者:

y = x /(*p)

/* p指向除数 */;

3.else 问题

考虑下面的程序片断:

if(x == 0)

if(y == 0)

error();

else {

z = x

y;

f(&z);

}

写这段程序的程序员的目的明显是想将情况分为两种:x == 0 和x!= 0。在第一种情况中,如果 y == 0,则调用 error()。第二种情况中,程序执行 z = x

y;和 f(&z)。

然而,这段程序的实际效果却大为不同。其原因是 else 总是与离它最近的 if 相关联。上面那段代码其实等价于:

if(x == 0){

if(y == 0)

error();

else {

z = x

y;

f(&z);

}

}

也就是说,当 x!= 0 发生时什么也不做。如果要达到我们想要的效果,应该改成:

if(x == 0){

if(y == 0)

error();

} else {

z = z

y;

f(&z);

}

4.表达式求值顺序

一些运算符以一种已知的、特定的顺序对其操作数进行求值。但另一些则不是。例如下面的表达式:

a

5.&&、|| 和!运算符

C 规定 0 代表“假”,非零代表“真”。这些运算符返回 1 表示“真”而返回 0 表示“假”。&& 和 || 运算符如果可以通过左边的操作数确定整个表达式的真假性,就不会对右边的操作数进行求值。!10 返回 0,因为 10 非零;10 && 12 返回 1,因为 10 和 12 的值都不是 0;10 || 12 也是 1,因为 10 非零。这个表达式中的 12 不会被求值,因为左边的 10 就足够确定整个表达式为真。同理 :10 || f()中的 f()也不会被求值。

6.下标从零开始

C 语言中,一个具有 n 个元素的数组中没有下标为 n 的元素,元素的下标是从 0 到n-1。下面的程序可能会崩溃:

int i, a[10];

for(i = 1;i

7.getchar 函数的返回值为整型(int)

请看以下程序:

#include

int main(void)

{

char c;

while((c = getchar())!= EOF)

putchar(c);

return 0;

}

这段代码存在一个小小的,但已经足以致命的错误:c 被声明为字符型(char)而不是整型。这意味着 c 可能不能正确接收 EOF,从而导致程序不能退出!正确的写法是:将 char 改成int。

第四篇:总结错误

错误分析:启动tomcat错误

异常:the port already use , jvm_bin

错误原因: 端口被占用

错误改正: 1.修改conf/server.xml文件 修改下列端口或关闭占用相应端口的程序。

connectionTimeout=“20000”redirectPort=“8443” />

错误分析:cmd启动tomcat错误

异常:The CATALINE_HOME enviroment variable is not defined correctly,This enviroment variable is needed to run this program

错误原因: 服务名与tomcat环境变量不一致(服务名与tomcat环境变量名应一致)错误改正: 1.把TOMCAT_HOMR 改为 CATALINE_HOME

错误分析: session工厂配置错误

resolve reference to bean 'sessionFactory' while setting bean property'sessionFactory';

classpath:conf/hibernate.cfg.xml

class org.springframework.web.util.Log4jConfigListener java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter:

错误分析:连接池错误

异常:Cannot create PoolableConnectionFactory(Unknown database 'text')

错误分析:缺少spring参数错误

异常: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource

[/WEB-INF/applicationContext.xml] org.xml.sax.SAXParseException:XML

错误分析:缺少Log4j 参数错误

Exception sending context initialized event

org.springframework.web.util.Log4jConfigListener to listener instance of class

错误分析:Ztree异步加载错误

异常:Uncaught ReferenceError: zTreeOnAsyncSuccess is not defined

浏览器: zTree init 失败

错误原因:找不到 seting配置数据中的callback 中的方法 或filter中方法

错误改正:删除无用的配置数据

错误分析:Tomcat启动错误

异常:Exception starting filter struts2Unable to load configuration.-[unknown location] 浏览器异常: zTree init 失败

错误原因:jar包有冲突, 应该是XML解析包有冲突.检查发布后的WEB-INF/lib有两个XML解析包:xml-apis.jar和xerces-2.6.2.jar 这种错误真正原因不是JDK 6和Struts 2冲突, 而是MyEclipse Hibernate 类库中多了两个包: xml-apis.jar和xerces-2.6.2.jar,这两个包的功能和JDK的冲突了。

解决办法: 1.删除发布后目录的 WEB-INF/lib/ 下的xerces-2.6.2.jar这个文件;2.或者使用JDK1.5来启动Tomcat 6.错误分析:Windows端口不能识别

信息: Port busy 5 java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind

错误原因:Tomcat中的端口有不符合端口要求的,端口可能被改为默认5

解决办法: 修改端口号

错误分析:Hibernate 配置错误

异常:org.springframework.orm.hibernate3.HibernateSystemException: ids for this class must be manually assigned before calling save()org.springframework.orm.hibernate3.HibernateJdbcException:

exception on Hibernate data access

解决办法:对应 id改为自动增长 JDBC如果id不为自动增长 id值不能为空

错误分析:Hibernate 配置错误

异常: Could not read

org/leopard/model/file/File.hbm.xml

Caused by:

错误原因: hibernate映射文件配置格式错误 mappings from resource:

解决办法: 检查对应hibernate映射文件格式是否错误

错误分析:文件上传错误

异常: : the request was rejected because its size(33647288)exceeds the configured maximum(2097152)

错误原因:上传文件大于最大文件大小

解决办法:

解决办法: 在执行sql语句之前

Session.clean()

getHiberNate().clean;

spring配置 AOP

异常 no matching editors or conversion strategy found

解决方案 加入 roxy-target-class=“true”

java.lang.reflect.InvocationTargetException

a different object with the same identifier value was already associated with the session: [org.leopard.model.user.User#1];nested exception is : a different object with the same identifier value was already associated with the session:

[org.leopard.model.user.User#1]

第五篇:C语言错误

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: '' : missing subscript

丢失数组下标

error C2106: '=' : left operand must be l-value

'='的左侧应当是左值,即不能是常量

error C2115: '=' : incompatible types

'='两侧的类型不兼容

error C2133: 'a' : unknown size

a(可能是数组名)的大小不确定。

error C2137: empty character constant

空的字符常量

error C2143: syntax error : missing ';' before......在......之前,缺少';'

error C2146: syntax error : missing ')' before identifier '......'

在标识符'......'之前缺少')'

error C2181: illegal else without matching if

else缺少匹配的if

error C2198: 'printf' : too few actual parameters

'printf'函数的参数太少

error C2223: left of '->x' must point to struct/union

'->x'的左侧应是结构类型变量或联合类型变量

error C2224: left of '.x' must have struct/union type

'.x'的左侧应是结构类型变量或联合类型变量

error C2371: 'f1' : redefinition;different basic types

函数'f1'的接口被重定义,参数类型或返回值类型不一致

warning C4101: 'x' : unreferenced local variable

'x'是一个从未被使用的局部变量

warning C4013: 'fi' undefined;assuming extern returning int

函数'fi'未定义,假设其是外部函数,返回值类型是int

warning C4020: 'fun' : too many actual parameters

调用'fun'函数时,有太多的实参

warning C4033: 'f3' must return a value

函数'f3'应当有返回值语句

warning C4047: '=' : 'int *' differs in levels of indirection from 'int '

赋值运算中的类型转换:从'int '转换到'int *'可能存在问题

warning C4098: 'f2' : 'void' function returning a value

函数'f2'是无返回值的函数,竟然有返回值语句。

warning C4133: 'function' : incompatible types-from '...' to '...'

不兼容的类型转换(从'...'类型向'...'类型)

warning C4244: 'initializing' : conversion from 'const double ' to 'int ', possible loss of data 在初始化数据时,类型转换可能导致数据丢失

warning C4305: 'initializing' : truncation from 'const int ' to 'char '

初始化时,数据被截断

warning C4700: local variable 'x' used without having been initialized

局部变量'x'在被使用之前未初始化,error LNK2001: unresolved external symbol _f5

f5从未定义

下载C语言错误种类总结word格式文档
下载C语言错误种类总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言常见错误小结(定稿)

    c语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不......

    审计报告的种类总结[精选合集]

    33、审计报告的种类。 1.按照审计报告格式,分为标准审计报告(格式和措辞基本统一)和非标准审计报告(包括一般审计报告和特殊审计报告)。 2.按照审计工作的范围和主体,分为外部(被审......

    语言学习中的错误改正

    语言学习中的错误改正来源:英语毕业论文 http:///数学语言是数学思想的表现形式,是进行数学思维和数学交流的工具。 斯托利亚尔曾指出“:数学教学也就是数学语言的教学。”学......

    matlab7.8错误总结

    一:matlab7.8中的simulink在‘找不到指定模块’下的打开方式: 一:先到simulink下搜索子xxx.m文件并打开,比如打开get_simulink_errors.m当引子。(必须每次都进行此步骤) 二:再在......

    ccs3.3 错误总结

    1. 提示错误:Trouble Setting Breakpoint with the Action "Halt Target" at 0x3ec3bf: Error 0x0000000A/-2140 Error during: Memory, Break Point, Cannot access memory......

    keil错误总结

    KEIL编译错误信息表 错误代码及错误信息 错误释义error 1: Out of memory 内存溢出error 2: Identifier expected 缺标识符error 3: Unknown identifier 未定义的标识符erro......

    校对错误总结

    校对错误总结 封面篇 1.封面风格要与正文内容协调,服务于正文内容。 2.封面上的书名、作者名、书号、定价等信息要准确无误。 3.封面的尺寸(16开,大32开,小32开)是否准确无误。......

    DSP错误总结!大全

    1.warning: entry point symbol _c_int00 undefined 使用C写DSP时,在rts.lib库中定义了入口地址:_c_int00 而使用汇编语言编程,就不用包括rts.lib库,所以入口地址及其标号可以由......