‘壹’ 在寄存器版本编程中sys.c文件中,语法检测已报错了,但是编译却说0 Error(s), 0 Warning(s).为什么
语法检测只联系上下文且外部函数在诞生时就已经写好了,编译器可以实时更改。比如一个自己写的头文件引用进来,用这个头文件里的一个函数,语法检测报错但编译器可以找到这个头文件里的函数,所以编译器不报错
‘贰’ 运行3dmax显示语法错误 编译错误 怎么回事
这个是因为Microsoft .NET Framework没有安装,或者需要更新。
以3D MAX2009为例,如果显示语法错误、编译错误,那么是需要安装NET Framework2.0 在成功安装后,再重启软件即可。
Microsoft .NET Framework是用于Windows的新托管代码编程模型。它将强大的功能与新技术结合起来,用于构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并且能支持各种业务流程。目前最新版本为4.5版本(发行时间2012-02-20),如果用户不知道自身的软件需要哪个版本的,可以选择直接下载安装最新版本。
‘叁’ 代码检查了一遍没什么问题,运行时出现这样的错误,怎么弄
这是因为,编译通过只表示你的程序语法没有问题,但并不能确保你的程序能正常运行.
你比如说,我在程序里计算
for(int i=3; i>-1; i--)
int j= 5/i;
从语法上来讲没有问题,但是实际运行时会出现除0错误.
再比如,你访问了不存在的文件,或者内存越界,或使用没有初始化的指针等都会导致程序运行出错.
所以说,编译通过仅仅是第一步,程序正确与否还需要进一步验证.
‘肆’ 已经没有语法错误了,代码编译不成功,怎么破
不正确地创建代码时就会出现语法错误。包括错误地输入关键字,遗漏了不必要的标点符号或者是不正确的结构(例如,For语句少了相应的Next语句,或If关键字所在的行没有条件运算符)。
VisualBasic包含有【自动语法检测】选项,可以在用户编写程序时检测和更正语法错误。如果使用了这个选项,VisualBasic就会在用户输入程序时解释这个程序。当它发现错误时,就会加亮显示这个程序代码并显示一个消息框来解释原因和提供帮助。这样用户就可以在继续编程之前更正错误。
在【工具】菜单中,单击【选项】命令,在【选项】对话框中,单击【编辑器】选项卡,单击【自动语法检测】选项。
当程序语句试图执行一条不可能执行的操作时,就会发生运行时错误。
常见的运行时错误是试图从一个不存在的文件中读取数据,另一个是试图执行被零除的操作。
在用户的程序中为这些错误提供出错处理函数和错误处理例程是很重要的。有关错误处理函数,更详尽的信息请参考第八章“处理错误”。
当应用程序不能按期望的方式执行时会发生逻辑错误。这些错误是很难发现的。因为应用程序的语法完全合法,运行时也不执行非法操作,但是仍然会产生错误。这类错误通常不会产生出错消息。验证应用程序执行的唯一方法就是测试它并分析运行结果。
希望我能帮助你解疑释惑。
‘伍’ c++中什么是语法错误,什么是编译错误
程序的错误主要分成三种:
编译链接错误;
编译链接错误又分成编译错和链接错。
编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;
链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。
运行错误;
运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。
逻辑错误
逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。
例如:新手经常将判断相等的==写成=赋值,往往就会导致逻辑错。
你的BD(int,int); 是一句函数调用?还是一句函数声明?
‘陆’ 程序编译错误不知道是什么原因
不能通编译过的程序实际上还不是合法的程序,因为它不满足C语言对于程序的基本要求。
检查语法错误的第一要义:集中力量检查系统发现的第一个错误,弄清并改正它。
在编译过程中系统发现的错误主要有两类:基本语法错误和上下文关系错误。这些错误都在表面上,可以直接看得见。也是比较容易弄清,比较容易解决的。关键是需要熟悉C语言的语法规定和有关上下文关系的规定,按照这些规定检查程序正文,看看存在什么问题。
编译中系统发现错误都能指出错误的位置。不同系统在这方面的能力有差异,在错误定位的准确性方面有所不同。有的系统只能指明发现错误的行,有的系统还能够指明行内位置。
一般说,系统指明的位置未必是真实错误出现的位置。通常情况是错误出现在前,而系统发现错误在后,因为它检查到实际错误之后的某个地方,才能确认出了问题,因此报出错误信息。要确认第一个错误的原因,应该从系统指明的位置开始,在那里检查,并从那里开始向前检查。
系统的错误信息中都包含一段文字,说明它所认定的错误原因。应该仔细阅读这段文字,通常它提供了有关错误的重要线索。但也应该理解,错误信息未必准确,有时错误确实存在,但系统对错误的解释也可能不对。也就是说,在查找错误时,既要重视系统提供的错误信息,又不应为系统的错误信息所束缚。
发现了问题,要想清楚错误的真正原因,然后再修改。不要蛮干。在这时的最大诱惑就是想赶快改,看看错误会不会消失。但是蛮干的结果常常是原来的错误没有弄好,又搞出了新的错误。
另一个值得注意的地方:程序中的一个语法错误常常导致编译系统产生许多错误信息。如果你改正了程序中一个或几个错误,下面的弄不清楚了,那么就应该重新编译。改正一处常常能消去许多错误信息行。
解决语法错误
常见语法错误:
1)缺少语句、声明、定义结束的分号。
2)某种括号不配对。C语言中括号性质的东西很多,列举如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括号不配对可能引起许多不同的错误信息。
3)关键字拼写错误。
较难认定的典型错误:
1)宏定义造成的错误。这种东西不能在源程序文件中直接看到,是在宏替换之后出现的。常见的能引起语法错误的宏定义错误:宏定义中有不配对的括号,宏定义最后加了不该有的分号,……
解决上下文关系错误
1)变量没有定义。产生这个问题的原因除了变量确实没有大意外,还可能是变量的拼写错误,变量的作用域问题(在不能使用某个变量的地方想去用那个变量)。
2)变量重复定义。例如在同一个作用域里用同样名字定义了两个变量,函数的局部变量与参数重名等。
3)函数的重复定义。可能是用同一个名字定义了两个不同的函数。或者是写出的函数原型在类型上与该函数的定义不相符。有时没有原型而直接写函数调用也可能导致这种错误信息,因为编译程序在遇到函数调用而没有看到函数原型或函数定义时,将给函数假定一个默认原型。如果后来见到的函数定义与假定不符,就会报告函数重复定义错误。
4)变量类型与有关运算对运算对象或者函数对参数的要求不符。例如有些运算(如 %)要求整数参数,而你用的是某种浮点数。
5)有些类型之间不能互相转换。例如你定义了一个结构变量,而后要用它给整数赋值。系统容许的转换包括:数值类型之间的转换,整数和指针之间的转换,指针之间的转换。其余转换(无论是隐含的,还是写出强制)都不允许。参见《C语言程序设计》(K&R)197-199页。
如何看待编译警告
当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。
注意:经验表明,警告常常意味着严重的隐含错误。
常见警告:
1)(局部自动)变量没有初始化就使用。如果对局部指针变量出现这种情况,后果不堪设想。对于一般局部自动变量,没有初始化就使用它的值也不会是有意义的。
2)在条件语句或循环语句的条件中写了赋值。大部分情况是误将 == (等于判断)写成 = 了。这是很常见的程序错误,有些编译程序对这种情况提出警告。
‘柒’ c语言helloworld代码是对的,但编译错误
写c语言的时候,如果代码没错,这只能说明语法没有出错,直接导致的结果就是能编译通过,并不意味着执行的结果就是正确的。影响c语言代码执行结果的因素非常多。
一、指针的不正确运用;
二、变量精度问题。char,int,unsigned int,long ,float等,如果变量精度使用不正确,也会影响运算结果;
三、运算符的应用不正确。例如除,取余的区别;
四、正负符号位;
五、运算符的优先级使用;
六、编译器不同。各种编译器也可能造成结果不一致;
C语言虽然是一门比较简单的语言,但是要掌握这些细节,其实并不容易。
‘捌’ 程序编译时没错运行时有错是怎么回事
程序编译没有错误,只是表明语法检查没有问题了,但是程序的逻辑是否合理、运行是否正确,则不一定。很多情况都会导致这样的问题,比方说数组越界,访问非法指针等,你没有给出源代码,也没有提供相关错误信息,所以到底是什么原因,在这里也不好确定。如果程序不长的话,建议对程序进行调试,监测程序的运行状态,这样容易找出问题。
‘玖’ C语言没有语法错误,但是一编译就有两个错误
上面信息是0错误,0警告。
你写的代码没问题。
‘拾’ C语言的一个小程序通过语法检查但是编译失败。求指点。
_prts 第一个参数是double ar[]
虽然是等效于double*
但本身还是不能++的
所以 改成
double *ar
其它的 应该没什么问题。