欢迎来到天天文库
浏览记录
ID:40747367
大小:44.00 KB
页数:8页
时间:2019-08-07
《gcc编译c问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1、LinuxC语言编程错误解决之“warning:the`gets'functionisdangerousandshouldnotbeused.问题出在程序中使用了getsLinux下gcc编译器不支持这个函数,解决办法是使用fgetsfgets()函数的基本用法为:fgets(char*s,intsize,FILE*stream);/*代码实现*/#includeintmain(){charcrack8[20];printf("输入任意字符:");fgets(crack8,20,stdin);//stdin意思是键盘输入fputs
2、(crack8,stdout);//stdout输出return0;}2、逻辑错误与语法错误在编程时,出现的错误可能有逻辑错误和语法错误两种。这两种错误的发生原因和处理方法是不同的。本节将讲述这两种错误的处理方法。逻辑错误指的是程序的设计思路发生了错误。这种错误在程序中是致命的,程序可能正常编译通过,但是结果是错误的。当程序正常运行而结果错误时,一般都是编程的思路错误。这时,需要重新考虑程序的运算方法与数据处理流程是否正确。语法错误:语法错误指的是程序的思路正确,但是在书写语句时,发生了语句错误。这种错误一般是编程时不小心或是对语句的错误理解造成的。在发生
3、语句错误时,程序一般不能正常编译通过。这时会提示错误的类型和错误的位置,按照这些提示改正程序的语法错误即可完成错误的修改。3、C程序中的错误与异常C程序中的错误,根据严重程序的不同,可以分为异常与警误两类。在编译程序时,这两种情况对编译的影响是不同的,对错误与异常的处理方式是不同的。1.什么是异常异常指的是代码中轻微的错误,这些错误一般不会影响程序的正常运行,但是不完全符合编程的规范。在编译程序时,会产生一个“警告”,但是程序会继续编译。下面的程序会使程序发生异常,在编译时产生一个警告错误。?在除法中,0作除数。?在开方运算时,对负数开平方。?程序的主函数
4、没有声明类型。?程序的主函数没有返回值。?程序中定义了一个变量,但是没有使用这个变量。?变量的存储发生了溢出。2.什么是错误错误指的是程序的语法出现问题,程序编译不能正常完成,产生一个错误信息。这时会显示错误的类型与位置。根据这些信息可以对程序进行修改。4、编译中的警告提示在编译程序时,如果发生了不严重的异常,会输出一个错告错误,然后完成程序的编译。例如下面的内容是一个程序在编译时产生的警告。5.1.c:Infunction'main':5.1.c:16:警告:‘main’的返回类型不是‘int’5.1.c:18:警告:被零除这些的含义如下所示。(1)“I
5、nfunction'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编译程序时,会发生错误,错误信息如下所示。5.1.c:2:2
6、0:错误:stdio2.h:没有那个文件或目录1.8.5错误地使用逗号程序中逗号的含义是并列几个内容,形成某种算法或结构。程序中如果错误地使用逗号,会使程序在编译时发生致命错误。例如下面的代码,是程序中的if语句后面有一个错误的逗号。intmax(inti,intj){if(i>j),{return(i);}else{return(j);}}程序编译时输出的错误信息如下所示。表明max函数中逗号前面的表达式有错误,实际上的错误是多一个逗号。5.1.c:Infunction‘max’:5.1.c:4:错误:expectedexpressionbefore‘,
7、’token5.1.c:Infunction‘max’:1.8.6括号不匹配错误程序中的引号、单引号、小括号、中括号、大括号等符号必须成对出现。这方面的错误会使程序发生符号不匹配的错误。发生这种错误后,编译程序往往不能理解代码的含义,也不能准确显示错误的位置,而是显示表达式错误。例如下面的代码,在最后一行上了一个花括号。intmax(inti,intj){if(i>j){return(i);}else{return(j);}编译程序时,会显示下面的错误信息。5.1.c:22:错误:expecteddeclarationorstatementatendofi
8、nput1.8.7小括号不匹配错误程序中的小括号一般在一行内成对出
此文档下载收益归作者所有