- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
gcc编译c问题
1、Linux C语言编程错误解决之 “warning: the `gets function is dangerous and should not be used.
问题出在程序中使用了 gets Linux 下gcc编译器不支持这个函数,解决办法是使用 fgets
fgets()函数的基本用法为:fgets(char * s,int size,FILE * stream);
/* 代码实现 */
#include stdio.h
int main ( ) {
char crack8[20];
printf(\n 输入任意字符 : );
fgets(crack8, 20, stdin);//stdin 意思是键盘输入
fputs(crack8, stdout); //stdout 输出
return 0;
}
2、逻辑错误与语法错误
在编程时,出现的错误可能有逻辑错误和语法错误两种。这两种错误的发生原因和处理方法是不同的。本节将讲述这两种错误的处理方法。 逻辑错误指的是程序的设计思路发生了错误。这种错误在程序中是致命的,程序可能正常编译通过,但是结果是错误的。当程序正常运行而结果错误时,一般都是编程的思路错误。这时,需要重新考虑程序的运算方法与数据处理流程是否正确。 语法错误:语法错误指的是程序的思路正确,但是在书写语句时,发生了语句错误。 这种错误一般是编程时不小心或是对语句的错误理解造成的。在发生语句错误时,程序一般不能正常编译通过。这时会提示错误的类型和错误的位置,按照这些提示改正程序的语法错误即可完成错误的修改。
3、 C 程序中的错误与异常
C 程序中的错误,根据严重程序的不同,可以分为异常与警误两类。在编译程序时,这两种情况对编译的影响是不同的,对错误与异常的处理方式是不同的。1.什么是异常异常指的是代码中轻微的错误,这些错误一般不会影响程序的正常运行,但是不完全符合编程的规范。在编译程序时,会产生一个“警告”,但是程序会继续编译。下面的程序会使程序发生异常,在编译时产生一个警告错误。? 在除法中,0 作除数。? 在开方运算时,对负数开平方。? 程序的主函数没有声明类型。? 程序的主函数没有返回值。? 程序中定义了一个变量,但是没有使用这个变量。? 变量的存储发生了溢出。2.什么是错误 错误指的是程序的语法出现问题,程序编译不能正常完成,产生一个错误信息。这时会显示错误的类型与位置。根据这些信息可以对程序进行修改。
4、编译中的警告提示
在编译程序时,如果发生了不严重的异常,会输出一个错告错误,然后完成程序的编译。例如下面的内容是一个程序在编译时产生的警告。5.1.c: In function main:5.1.c:16: 警告:‘main’ 的返回类型不是 ‘int’5.1.c:18: 警告:被零除这些的含义如下所示。(1)“In function main:”表示发生的异常在main 函数内。
(2)“5.1.c:16:”表示发生异常的文件是5.1.c,位置是第16 行。(3)下面的信息是第16 行的异常,表明程序的返回类型不正确。‘main’ 的返回类型不是 ‘int’(4)下面的警告信息表明程序的第18 行有除数为0 的错误。5.1.c:18: 警告:被零除1.8.4 找不到包含文件的错误程序中的包含文件在系统或工程中一定要存在,否则程序编译时会发生致命错误。例如下面的语句包含了一个不正确的头文件。#include stdio1.h编译程序时,会发生错误,错误信息如下所示。5.1.c:2:20: 错误:stdio2.h:没有那个文件或目录1.8.5 错误地使用逗号程序中逗号的含义是并列几个内容,形成某种算法或结构。程序中如果错误地使用逗号,会使程序在编译时发生致命错误。例如下面的代码,是程序中的if 语句后面有一个错误的逗号。int max(int i,int j ){if(ij),{return(i);}else{return(j);}}程序编译时输出的错误信息如下所示。表明max 函数中逗号前面的表达式有错误,实际上的错误是多一个逗号。5.1.c: In function ‘max’:5.1.c:4: 错误:expected expression before ‘,’ token5.1.c: In function ‘max’:1.8.6 括号不匹配错误程序中的引号、单引号、小括号、中括号、大括号等符号必须成对出现。这方面的错误会使程序发生符号不匹配的错误。发生这种错误后,编译程序往往不能理解代码的含义,也不能准确显示错误的位置,而是显
文档评论(0)