当前位置:首页 » 编程软件 » 工程编译错误时按什么顺序改正

工程编译错误时按什么顺序改正

发布时间: 2022-05-13 14:27:16

c语言:下面的代码为什么会出现编译错误应当怎么改正

错误出在a=sum;这一句——因为构成C语言程序的基本单位是函数而不是C语句,这里的a=sum;不在任何函数中,所以编译器无法处理而出错。把它放到主函数中的printf("%d ",a(3,5));之前就可以了。函数外只能进行全局变量定义或声明,而不能进行其他操作,所以把int (*a)(int, int); a=sum;两句改成int (*a)(int, int)=sum;,让它成为声明变量a并初始化为sum也是可以的。你可以试试。

代码文本:

#include "stdio.h"

int sum(int a, int b);

int (*a)(int, int);

int main(int argc,char *argv[]){

a=sum;

printf("%d ",a(3,5));

return 0;

}

int sum(int a,int b){

return a+b;

}

② 新手在学习c语言并编译程序时编译错误怎么办

1、确定出错的行号
如果是一个比较好的集成编译环境的话,一般双击编译错误,鼠标都会自动跳转到该行并高亮显示。
没有这个功能也没关系,编译错误里面也都会有说明某某.c,某某行出的问题
1>e:\visual studio 2005\projects\airplane\airplane\airplane.cpp(52) : error C2065: 'abc' : undeclared identifier
这个就是说明在airplane.cpp的52行有错误

2、多个错误的话,一般只处理第一个错误
如果一次打出很多错误的话,不需要每一个都处理,只处理第一个编译错误,然后再次编译。大部分的时候,都是由于第一个错误产生了后续很多错误,第一个错误解决之后,其他错误也就迎刃而解。

3、对错误的更改
一般就是看错误的编号和后续的英文说明,如上面的错误,错误编号是C2065,错误的解释是'abc' : undeclared identifier,未定义的标示符,将abc定义即可。
错误的种类很多,一般看英文就可以解决,如果解决不了的话,推荐根据错误编号上网搜索一下解决方法就OK拉。

③ 程序编译时出错了,想请问下如何改正这个错误

1。你没有引用malloc.h或者stdlib.h库,所以 malloc报错;
2。你的S与T没有声明应该这样写:
seqstring*S = (seqstring*) malloc(sizeof(seqstring));
seqstring*T=(seqstring*) malloc(sizeof(seqstring));

④ 对于C语言编程出了错,怎么能快速找出错误呢

代码是否存在逻辑错误:

1、变量使用前未被数值

实例:

int main()

{

int x=5,y,z;

z=x*y;

printf("%d",z);

return 0;

}

在此程序中变量y在使用之前未被赋值,所以结果输出z的值就会是系统随机分配一个值给y再加乘以x的值。

2、把赋值赋值符号“=”与等于符号“==”相混淆

实例:

有一下语句:

if(a=5)

{

printf("a等于5");

}

输出的结果永远都是“a等于5”,原因是在执行if(a=5)之时,无论a之前是什么值,此时都会被重新赋值为5,而不是把a的值与5相比较,而正确的表示比较的表示为:

if(a==5)

{

printf("a等于5");

}

(4)工程编译错误时按什么顺序改正扩展阅读

C语言编程注意事项:

1、书写标识符时,忽略了大小写字母的区别。

2、将字符常量与字符串常量混淆。

3、忽略了变量的类型,进行了不合法的运算。

4、忽略了“=”与“==”的区别。

5、忘记加分号。

6、多加分号。

7、输入变量时忘记加地址运算符“&”。

⑤ 工程设置不正确形成的编译错误在中Visual Unit 4怎么解决

用于引入静态或动态库的头文件设置是否正确
用于引入静态或动态库的头文件目录应该放在库头文件目录中。
如果常规头文件目录中,有些头文件是用于引入静态或动态库,应该设为L,方法是:从工程菜单打开工程属性,在“头文件”页,点击“详细分类”,打开“头文件分类”查看和修改。如果整个大目录都应该设为L,最好将目录移到库头文件目录中。
预处理定义是否与产品文件一致
对于用户设定的预处理定义(“编译条件”),产品项目、VU工程两者应保持一致。
头文件搜索顺序是否正确
如果项目目录下存在多个同名头文件,可能导致VU搜索到错误的头文件,可在“工程属性”的“头文件”页,调整头文件搜索顺序 ,以便首先搜索到正确的头文件;或点击“详细分类”,打开“头文件分类”对话框,将不使用的头文件设为“X”。

⑥ C程序编译时提示错误,怎么改正下列程序呢找不出错误在哪里,怎么改

能把你的错误信息给复制出来么,图片这好像不全啊
float root(float x1,floatx2)改成 float root(float x1,float x2)啊没空格

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

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

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

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

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

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

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

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

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

解决语法错误

常见语法错误:

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

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

3)关键字拼写错误。

较难认定的典型错误:

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

解决上下文关系错误

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

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

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

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

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

如何看待编译警告

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

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

常见警告:

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

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

⑧ 编译器编译代码时, 他的顺序是怎样的

先定义全局变量,再按照从左至右,从上至下的顺序将源代码(也就是你写的代码)编译成机器能识别的机器码,最后再执行编译好的机器码.

⑨ 对于一个比较大的工程,keil在编译那些文件的顺序是怎么样的怎么看出文件编译的先后顺呢

编译顺序就是左边项目的树型目录中的C文件排列顺序,这个顺序没什么关系的。
你要看的话,在编译的时候,提示信息会依次告诉你“compling xxxx.c...”

热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:165
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:734
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:148
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:397
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:540
access数据库exe 发布:2025-05-12 12:39:04 浏览:628
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:365