gcc编译c问题.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 ‘,’ token 5.1.c: In function ‘max’: 1.8.6 括号不匹配错误 程序中的引号、单引号、小括号、中括号、大括号等符号必须成对出现。这方面的错误 会使程序发生符号不匹配的错误。发生这种错误后,编译程序往往不能理解代码的含义,也 不能准确显示错误的位置,而是显

文档评论(0)

638922bb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档