导航:首页 > 源码编译 > 编译错误和编辑错误

编译错误和编辑错误

发布时间:2022-04-01 15:19:01

Ⅰ 请问c++问题 编译错误 与 链接错误有什么区别

编译错误是代码有错误;
链接错误是由于程序缺少必要的库文件,一般错误提示error LINK2001:无法解析的外部符号。

Ⅱ 我写的程序总是编译错误..请指教!!!

程序没有错,你可能是JAVA的CLASSPATH没有设置好。

你的程序输出

体积为 24
体积为 30
体积为 48
请按任意键继续. . .

Ⅲ C#中什么是编译错误,什么是运行错误,它们的区别是什么

在编译成中间语言的时候就没通过,也就是语法有错误,简单的说,

就是"你说的话,人家完全听不懂,没法帮你编译"所以是编译错误,

这个是原则性的错误.

而编译通过了,但是运行时错误,说明编程人员对代码的思想有错误,

简单的说就是"你说的话,人家听得懂,但是不明白你什么意识",语无伦次的

让对方不知道你想做什么,就运行时错误了.

Ⅳ 程序编译错误不知道是什么原因

不能通编译过的程序实际上还不是合法的程序,因为它不满足C语言对于程序的基本要求。

检查语法错误的第一要义:集中力量检查系统发现的第一个错误,弄清并改正它。

在编译过程中系统发现的错误主要有两类:基本语法错误和上下文关系错误。这些错误都在表面上,可以直接看得见。也是比较容易弄清,比较容易解决的。关键是需要熟悉C语言的语法规定和有关上下文关系的规定,按照这些规定检查程序正文,看看存在什么问题。

编译中系统发现错误都能指出错误的位置。不同系统在这方面的能力有差异,在错误定位的准确性方面有所不同。有的系统只能指明发现错误的行,有的系统还能够指明行内位置。

一般说,系统指明的位置未必是真实错误出现的位置。通常情况是错误出现在前,而系统发现错误在后,因为它检查到实际错误之后的某个地方,才能确认出了问题,因此报出错误信息。要确认第一个错误的原因,应该从系统指明的位置开始,在那里检查,并从那里开始向前检查。

系统的错误信息中都包含一段文字,说明它所认定的错误原因。应该仔细阅读这段文字,通常它提供了有关错误的重要线索。但也应该理解,错误信息未必准确,有时错误确实存在,但系统对错误的解释也可能不对。也就是说,在查找错误时,既要重视系统提供的错误信息,又不应为系统的错误信息所束缚。

发现了问题,要想清楚错误的真正原因,然后再修改。不要蛮干。在这时的最大诱惑就是想赶快改,看看错误会不会消失。但是蛮干的结果常常是原来的错误没有弄好,又搞出了新的错误。

另一个值得注意的地方:程序中的一个语法错误常常导致编译系统产生许多错误信息。如果你改正了程序中一个或几个错误,下面的弄不清楚了,那么就应该重新编译。改正一处常常能消去许多错误信息行。

解决语法错误

常见语法错误:

1)缺少语句、声明、定义结束的分号。

2)某种括号不配对。C语言中括号性质的东西很多,列举如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括号不配对可能引起许多不同的错误信息。

3)关键字拼写错误。

较难认定的典型错误:

1)宏定义造成的错误。这种东西不能在源程序文件中直接看到,是在宏替换之后出现的。常见的能引起语法错误的宏定义错误:宏定义中有不配对的括号,宏定义最后加了不该有的分号,……

解决上下文关系错误

1)变量没有定义。产生这个问题的原因除了变量确实没有大意外,还可能是变量的拼写错误,变量的作用域问题(在不能使用某个变量的地方想去用那个变量)。

2)变量重复定义。例如在同一个作用域里用同样名字定义了两个变量,函数的局部变量与参数重名等。

3)函数的重复定义。可能是用同一个名字定义了两个不同的函数。或者是写出的函数原型在类型上与该函数的定义不相符。有时没有原型而直接写函数调用也可能导致这种错误信息,因为编译程序在遇到函数调用而没有看到函数原型或函数定义时,将给函数假定一个默认原型。如果后来见到的函数定义与假定不符,就会报告函数重复定义错误。

4)变量类型与有关运算对运算对象或者函数对参数的要求不符。例如有些运算(如 %)要求整数参数,而你用的是某种浮点数。

5)有些类型之间不能互相转换。例如你定义了一个结构变量,而后要用它给整数赋值。系统容许的转换包括:数值类型之间的转换,整数和指针之间的转换,指针之间的转换。其余转换(无论是隐含的,还是写出强制)都不允许。参见《C语言程序设计》(K&R)197-199页。

如何看待编译警告

当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。

注意:经验表明,警告常常意味着严重的隐含错误。

常见警告:

1)(局部自动)变量没有初始化就使用。如果对局部指针变量出现这种情况,后果不堪设想。对于一般局部自动变量,没有初始化就使用它的值也不会是有意义的。

2)在条件语句或循环语句的条件中写了赋值。大部分情况是误将 == (等于判断)写成 = 了。这是很常见的程序错误,有些编译程序对这种情况提出警告。

Ⅳ C语言编译错误不知道为什么

你定义数组是int a[3];不是a=[3];然后定义时可以赋初值int a[3]={0};这样3个都为0,或者int a[3]={1,2,3};那么数组3个分别为1,2,3.
然后如果你数组只有3个空间的话,那么后面的for语句就不要i<10了,会数组越界

Ⅵ 编译器错误怎么解决

Ⅶ c语言helloworld代码是对的,但编译错误

写c语言的时候,如果代码没错,这只能说明语法没有出错,直接导致的结果就是能编译通过,并不意味着执行的结果就是正确的。影响c语言代码执行结果的因素非常多。

一、指针的不正确运用;

二、变量精度问题。char,int,unsigned int,long ,float等,如果变量精度使用不正确,也会影响运算结果;

三、运算符的应用不正确。例如除,取余的区别;

四、正负符号位;

五、运算符的优先级使用;

六、编译器不同。各种编译器也可能造成结果不一致;

C语言虽然是一门比较简单的语言,但是要掌握这些细节,其实并不容易。

Ⅷ c语言编译错误

因为你的a[6][6]这个数组没有初始化,也没有输入值,所以内存中就没有a数组的内容的地址,所以一运行就会出错啊,访问了不该访问的内存,所以就报错了。

Ⅸ C语言编译时有如下错误,怎么回事

extern int M=0;
extern int N=0;
extern int data[LENGTHINI];
extern int flag[LENGTHINI];
这几句有问题,你把extern去掉.
你没定义这几组数据,仅仅是声明了.连接是就会找不到定义处,所以回出现Linker Error.
用extern声明变量时,extern有两中用法:
1.声明的变量在本文件中后面将有定义.
1.声明的变量在其他文件中定义(但编译时两文件要在一起编译).

阅读全文

与编译错误和编辑错误相关的资料

热点内容
陕西不听命令 浏览:366
怎么把皮皮虾app表情弄到微信 浏览:288
安卓编译springboot 浏览:391
手机壁纸文件夹背景 浏览:792
target目录禁止编译 浏览:804
php打开html页面 浏览:612
python加密mp4 浏览:898
吃鸡如何把安卓平板亮度变亮 浏览:5
python中concatenate 浏览:37
程序员银行用的技术老旧 浏览:848
航天器控制算法软件 浏览:520
游戏不同的服务器有什么区别 浏览:72
jar线上编译 浏览:115
程序员论坛代码被怼 浏览:996
win7文件夹选项注册表 浏览:786
中央编译局常艳博士照片 浏览:306
濡沫江湖安卓怎么下载 浏览:955
陕西省电信dns服务器云服务器 浏览:828
美辑编译多长时间润色好 浏览:468
服务器心跳地址是什么 浏览:983