① c++中什么是语法错误,什么是编译错误
程序的错误主要分成三种:
编译链接错误;
编译链接错误又分成编译错和链接错。
编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;
链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。
运行错误;
运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。
逻辑错误
逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。
例如:新手经常将判断相等的==写成=赋值,往往就会导致逻辑错。
你的BD(int,int); 是一句函数调用?还是一句函数声明?
② C#中什么是编译错误,什么是运行错误,它们的区别是什么
编译错误是在运行之前报出的 运行错误就是字面意思 在运行中发生的异常你可以把编译错误想象成 明明是要考试2+2 可你却写成了1+1 当老师在检查你算法对不对之前他就知道你错了 因为 明明是2+2 就像楼上说的 一般是语法之类的错误 运行错误 就是你没有语法之类的错误 可是在运行时 算法或者某些东西使用不当出现的错误比如空指针异常 溢出异常 等等 要用具体的来说明的话比如 一个数组长度只有3位 可是你却在使用过程中赋了4位以上的值 或者当你用了一个对象可是在却一直没有给对象引用类型等等 就好像 要考试2+2 你是写的2+2没错 但是 你却是写的等于5 老师就发现你的结果存在错误 而不是一开始就写错了
③ 计算机等级考试一道C语言编程题编译错误问题!!!急!!!
你开头声明的int型数组b[MAX]和void jsVal()函数里的int型b变量产生冲突了,因为b[MAX]为全局整型数组,其中的b表示数组的起始地址,而你在jsVal()函数里定义的局部整型变量b,它表示一个实实在在的int型,所以在这条语句
b[cnt++] = a[i]; /*编译系统出错提示语句*/
编译器不知道你说的b到底是什么?
解决方案:把jsVal()里的int b改为其他字符,例如int bb;
④ C的编译错误提示是什么意思怎么解决
可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的 “Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的 选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的, “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面, 你可以到相应的路径下找到这个应用程序。 因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)” —>“Directories(目录)”重新设置“Excutable Fils、Include Files、 Library Files、Source Files”的路径。很多情况可能就一个盘符的不同 (例如你的VC装在C,但是这些路径全部在D),改过来就OK了。 如果你是按照初始路径安装vc6.0的,路径应为: executatble files: C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin C:\Program Files\Microsoft Visual Studio\VC98\BIN C:\Program Files\Microsoft Visual Studio\Common\TOOLS C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT include files: C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE library files: C:\Program Files\Microsoft Visual Studio\VC98\LIB C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB source files: C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC 如果你装在其他盘里,则仿照其路径变通就行(我就是装在D盘)。 关键是microsoft visual studio\ 后面的东西要相同。 本人深受其害,重装多次不管用,上面中文部分为高手借鉴,
⑤ 我在用C语言编程时,编译后总出现Error:spawning C1.exe的错误,看不懂,是什么意思啊快快快,谢谢!
原因可能是因为你计算机上的VC是从别的计算机上面拷来的,而非直接安装,所以设置的编译器路径需要重新设置。
具体的解决方法:
1、在菜单栏的【工具】(Tools)中选择【选项】(Options),在打开的对话框中选择【路径】(Directories);
在右边的目录“Show directories for:”下拉表中选择【可执行文件】(Executable files),再看下面有没有cl.exe文件所在的目录,如果不对修改之。
6、修改完之后,点击【确定】按钮,重新编译程序,可以发现没有出现Error spawning cl.exe这个问题,程序可以正常编译了。
⑥ java语言中什么叫做编译错误
就是你用javac命令将源代码(.java)文件翻译成字节码(.class)文件时产生的错误。
比如,变量名不符合规定,变量没定义,关键字拼写错误等等。。。
java的编译器(javac)会根据java语法规定做一些检查,不符合规定的就不通过编译。
编译错误,是相对于运行时错误而言的。
运行时错误,是你用java命令运行时会出现的错误,一般会抛出异常。
⑦ 程序编译错误不知道是什么原因
不能通编译过的程序实际上还不是合法的程序,因为它不满足C语言对于程序的基本要求。
检查语法错误的第一要义:集中力量检查系统发现的第一个错误,弄清并改正它。
在编译过程中系统发现的错误主要有两类:基本语法错误和上下文关系错误。这些错误都在表面上,可以直接看得见。也是比较容易弄清,比较容易解决的。关键是需要熟悉C语言的语法规定和有关上下文关系的规定,按照这些规定检查程序正文,看看存在什么问题。
编译中系统发现错误都能指出错误的位置。不同系统在这方面的能力有差异,在错误定位的准确性方面有所不同。有的系统只能指明发现错误的行,有的系统还能够指明行内位置。
一般说,系统指明的位置未必是真实错误出现的位置。通常情况是错误出现在前,而系统发现错误在后,因为它检查到实际错误之后的某个地方,才能确认出了问题,因此报出错误信息。要确认第一个错误的原因,应该从系统指明的位置开始,在那里检查,并从那里开始向前检查。
系统的错误信息中都包含一段文字,说明它所认定的错误原因。应该仔细阅读这段文字,通常它提供了有关错误的重要线索。但也应该理解,错误信息未必准确,有时错误确实存在,但系统对错误的解释也可能不对。也就是说,在查找错误时,既要重视系统提供的错误信息,又不应为系统的错误信息所束缚。
发现了问题,要想清楚错误的真正原因,然后再修改。不要蛮干。在这时的最大诱惑就是想赶快改,看看错误会不会消失。但是蛮干的结果常常是原来的错误没有弄好,又搞出了新的错误。
另一个值得注意的地方:程序中的一个语法错误常常导致编译系统产生许多错误信息。如果你改正了程序中一个或几个错误,下面的弄不清楚了,那么就应该重新编译。改正一处常常能消去许多错误信息行。
解决语法错误
常见语法错误:
1)缺少语句、声明、定义结束的分号。
2)某种括号不配对。C语言中括号性质的东西很多,列举如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括号不配对可能引起许多不同的错误信息。
3)关键字拼写错误。
较难认定的典型错误:
1)宏定义造成的错误。这种东西不能在源程序文件中直接看到,是在宏替换之后出现的。常见的能引起语法错误的宏定义错误:宏定义中有不配对的括号,宏定义最后加了不该有的分号,……
解决上下文关系错误
1)变量没有定义。产生这个问题的原因除了变量确实没有大意外,还可能是变量的拼写错误,变量的作用域问题(在不能使用某个变量的地方想去用那个变量)。
2)变量重复定义。例如在同一个作用域里用同样名字定义了两个变量,函数的局部变量与参数重名等。
3)函数的重复定义。可能是用同一个名字定义了两个不同的函数。或者是写出的函数原型在类型上与该函数的定义不相符。有时没有原型而直接写函数调用也可能导致这种错误信息,因为编译程序在遇到函数调用而没有看到函数原型或函数定义时,将给函数假定一个默认原型。如果后来见到的函数定义与假定不符,就会报告函数重复定义错误。
4)变量类型与有关运算对运算对象或者函数对参数的要求不符。例如有些运算(如 %)要求整数参数,而你用的是某种浮点数。
5)有些类型之间不能互相转换。例如你定义了一个结构变量,而后要用它给整数赋值。系统容许的转换包括:数值类型之间的转换,整数和指针之间的转换,指针之间的转换。其余转换(无论是隐含的,还是写出强制)都不允许。参见《C语言程序设计》(K&R)197-199页。
如何看待编译警告
当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。
注意:经验表明,警告常常意味着严重的隐含错误。
常见警告:
1)(局部自动)变量没有初始化就使用。如果对局部指针变量出现这种情况,后果不堪设想。对于一般局部自动变量,没有初始化就使用它的值也不会是有意义的。
2)在条件语句或循环语句的条件中写了赋值。大部分情况是误将 == (等于判断)写成 = 了。这是很常见的程序错误,有些编译程序对这种情况提出警告。
⑧ 下列各个错误中,属于编译错误的是 数组下标超界 “ == ”误写为“ != ” 死循环 括号不配对
括号不配对 会编译错误
数组下标超界 是运行时错误
其它两个是代码逻辑错误
⑨ 计算机二级C语言上机题目的评分标准是什么编译程序时,“错误”和“警告”分别代表什么
错误:编译不通过。或者判断的人输入了指定的数据,没有得到想要的输出结果。
警告:就是编译时,编译器输出的告警信息。有告警不一定有错。
扣分多少不知。