❶ 如何快速查找C语言编译时的错误
1、首先,我们启动编译软件程序,今天我们以VC++6.0为例。
注意事项:
编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。
❷ 按f8 提示编译错误:无效或不合格的引用 错误定位到.close
Columns.Count,这在任何一个Sheet都是一样的数值,没必要前面加“.”非要指定到某一个Sheet。 不过,虽然去掉“.”,对结果无影响,但加上报错,说明代码可能还是有问题;请把完整的代码贴上来看一下。不知前面的With语句使用的对象是否正确。
❸ c语言编译出错,怎么查找错误出在哪行
步骤:
1.打开源代码文件,在控制台里查看错误类型。
❹ omron plc Cx-p编程软件中的长时间定时器TIML指令编写后经编译显示定位错误是什么意思,请高手指点,急!
就是你的那个定时器放的位置不对
❺ 程序编译错误不知道是什么原因
不能通编译过的程序实际上还不是合法的程序,因为它不满足C语言对于程序的基本要求。
检查语法错误的第一要义:集中力量检查系统发现的第一个错误,弄清并改正它。
在编译过程中系统发现的错误主要有两类:基本语法错误和上下文关系错误。这些错误都在表面上,可以直接看得见。也是比较容易弄清,比较容易解决的。关键是需要熟悉C语言的语法规定和有关上下文关系的规定,按照这些规定检查程序正文,看看存在什么问题。
编译中系统发现错误都能指出错误的位置。不同系统在这方面的能力有差异,在错误定位的准确性方面有所不同。有的系统只能指明发现错误的行,有的系统还能够指明行内位置。
一般说,系统指明的位置未必是真实错误出现的位置。通常情况是错误出现在前,而系统发现错误在后,因为它检查到实际错误之后的某个地方,才能确认出了问题,因此报出错误信息。要确认第一个错误的原因,应该从系统指明的位置开始,在那里检查,并从那里开始向前检查。
系统的错误信息中都包含一段文字,说明它所认定的错误原因。应该仔细阅读这段文字,通常它提供了有关错误的重要线索。但也应该理解,错误信息未必准确,有时错误确实存在,但系统对错误的解释也可能不对。也就是说,在查找错误时,既要重视系统提供的错误信息,又不应为系统的错误信息所束缚。
发现了问题,要想清楚错误的真正原因,然后再修改。不要蛮干。在这时的最大诱惑就是想赶快改,看看错误会不会消失。但是蛮干的结果常常是原来的错误没有弄好,又搞出了新的错误。
另一个值得注意的地方:程序中的一个语法错误常常导致编译系统产生许多错误信息。如果你改正了程序中一个或几个错误,下面的弄不清楚了,那么就应该重新编译。改正一处常常能消去许多错误信息行。
解决语法错误
常见语法错误:
1)缺少语句、声明、定义结束的分号。
2)某种括号不配对。C语言中括号性质的东西很多,列举如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括号不配对可能引起许多不同的错误信息。
3)关键字拼写错误。
较难认定的典型错误:
1)宏定义造成的错误。这种东西不能在源程序文件中直接看到,是在宏替换之后出现的。常见的能引起语法错误的宏定义错误:宏定义中有不配对的括号,宏定义最后加了不该有的分号,……
解决上下文关系错误
1)变量没有定义。产生这个问题的原因除了变量确实没有大意外,还可能是变量的拼写错误,变量的作用域问题(在不能使用某个变量的地方想去用那个变量)。
2)变量重复定义。例如在同一个作用域里用同样名字定义了两个变量,函数的局部变量与参数重名等。
3)函数的重复定义。可能是用同一个名字定义了两个不同的函数。或者是写出的函数原型在类型上与该函数的定义不相符。有时没有原型而直接写函数调用也可能导致这种错误信息,因为编译程序在遇到函数调用而没有看到函数原型或函数定义时,将给函数假定一个默认原型。如果后来见到的函数定义与假定不符,就会报告函数重复定义错误。
4)变量类型与有关运算对运算对象或者函数对参数的要求不符。例如有些运算(如 %)要求整数参数,而你用的是某种浮点数。
5)有些类型之间不能互相转换。例如你定义了一个结构变量,而后要用它给整数赋值。系统容许的转换包括:数值类型之间的转换,整数和指针之间的转换,指针之间的转换。其余转换(无论是隐含的,还是写出强制)都不允许。参见《C语言程序设计》(K&R)197-199页。
如何看待编译警告
当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。
注意:经验表明,警告常常意味着严重的隐含错误。
常见警告:
1)(局部自动)变量没有初始化就使用。如果对局部指针变量出现这种情况,后果不堪设想。对于一般局部自动变量,没有初始化就使用它的值也不会是有意义的。
2)在条件语句或循环语句的条件中写了赋值。大部分情况是误将 == (等于判断)写成 = 了。这是很常见的程序错误,有些编译程序对这种情况提出警告。
❻ 使用vc编C++的程序,提示出错时,怎样快速找到错误位置
如果是简单的错误,可以直接双击错误列表里的错误项或者生成输出的错误信息中带行号的地方就可以让编辑窗口定位到错误的位置上。
对于复杂的模板错误,最好使用生成输出窗口。多数情况下出发错误的位置是最靠后的引用位置。如果这样确定不了错误,就需要先把自己写的代码里的引用位置找出来,然后逐个分析了。
C++的模板错误虽然往往会有很多行的输出,但其实是一个整体,有时候必须整体分析。这个并没有很完全的捷径可走。只能在使用中不断积累经验。或者你可以尝试先使用clang++之类错误输出更清晰的编译器。如果一定要使用VC++的话,尽量使用最新的版本,因为微软在这方面也一直在改进。
❼ C++编译失败报错很奇怪,没说错误在哪儿,怎么解决源代码和报错信息如下。
这个是linux下面的c++编译对吗,它跟挂载属性inode64有关系。比较老的交叉编译器,只支持32位inode的文件访问,当遇到超过4294967295的文件,就会编译出错并提示:Value too large for defined data type。
那么解决方案就有两种:
Ø 升级交叉编译器版本,让其支持inode64的源文件。
Ø 交叉编译器版本不变,将文件系统挂载属性从inode64改为inode32。
❽ 请教:怎么看懂并处理java编译错误
告诉你一个常见且最简单的新手解决方案,就是 从上而下的看打出的日志,找到第一个 是你自己所创建的文件路径 比如 com.you.test 的类报
的错,点击后面的连接就可以定位到错误发生的位置,在根据开头报的错误。加入报 null point空指针异常,则是你定位错误的位置发生了空指针。那
你给它初始化就解决了。 不知道你明白了不
❾ VC++6.0中写入程序,编译后提示有一错误,1 error(s)怎么简单的指出错误的所在之处呢,以便修改
编译出现错误,直接按F4,即可定位各错误行。
1、首先,进行打开一个需要进行调试的代码,进行再当前来进行编辑。
❿ VC++6.0无法定位错误行
明显这段代码就不少错误了
printf(dddd); 改成 printf("dddd");
a、b、c都没定义,即使有定义,a+b=c这样写也是不正确的
编译直接按ctrl + F5吧