C语言常见错误分析汇总.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言常见错误分析汇总 ?1、 在一个工程里出现两个main函数时 3.obj : error LNK2005: _main already defined in file1.obj Debug/HELLO.exe : fatal error LNK1169: one or more multiply defined symbols found 这个就是说,你的main函数重定义了。你看看是不是你的工程里面,包含了很多个有main函数的文件? 2、 fatal error C1010: unexpected end of file while looking for precompiled header directive 出现这个错误的原因是,工程类型建错了,应该选择win 32 console application 3、拼写错误 (1)#include stido.h //头文件拼写错了 void main() { printf(doeifweofupwp); } fatal error C1083: Cannot open include file: stido.h: No such file or directory (2)#inculde stdio.h//include拼写错了 void main() { printf(doeifweofupwp); } fatal error C1021: invalid preprocessor command inculde(无效的预编译命令inculde) (3)#include stdio.h void mian() //main拼写错了 { printf(doeifweofupwp); } error LNK2001: unresolved external symbol _main Debug/HELLO.exe : fatal error LNK1120: 1 unresolved externals 你用vc建了一个控制台程序,它的入口函数应该是main. ? 4、 (1)书写标识符时,忽略了大小写字母的区别。 ? main() ? { ? int a=5; ? printf(%d,A); ? } ? error C2065: A : undeclared identifier(A: 是没有定义/声明的标示符) 编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。 ?? 5、忽略了变量的类型,进行了不合法的运算。 ? main() ? { ? float a,b; ? printf(%d,a%b); ? } ?error C2296: % : illegal, left operand has type float error C2297: % : illegal, right operand has type float %是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。 ?? 6、将字符常量与字符串常量混淆。 ? char c; ? c=a; ?warning C4047: = : char differs in levels of indirection from char [2] 在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a和‘\,而把它赋给一个字符变量是不行的。 ?? 7、忽略了“=”与“==”的区别。 ? 在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写? if (a=3) then … ? 但C语言中,“=”是赋值运算符,“==”是关系运算符。如: ? if (a==3) a=b; ? 前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。 ? ?8、忘记加分号。 ? 分号是C语句中不可缺少的一部分,语句末尾必须有分号。 ? #include stdio.h void main() { int a,b; a=1 b=2 printf(%d,%d,a,b); } error syntax error : missing ; before identifier b error C2146: syntax error : missing ; before identifier printf 编译

文档评论(0)

ktj823 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档