(经典)C语言陷阱和缺陷.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 语言陷阱和缺陷[1] 原著:Andrew Koenig - ATT Bell Laboratories Murray Hill, New Jersey 07094 原文:收藏 翻译:lover_P [译序] 那些自认为已经 学完”C 言的人,请你们仔细读阅读这篇文章吧。路还长,很多东西要学。我也是…… [概述] C 言像一把雕刻刀,锋利,并且在技师手中非常有用。和任何锋利的工具一样,C 会伤到那些不能 掌握它的人。本文介绍C 语言伤害粗心的人的方法,以及如何避 伤害。 [内容] 0 简介 1 词法缺陷 o 1.1 = 不是 == o 1.2 和 | 不是 和 || o 1.3 多字符记号 o 1.4 例外 o 1.5 字符串和字符 2 句法缺陷 o 2.1 理解声明 o 2.2 运算符并不总是具有你所想象的优先级 o 2.3 看看这些分号! o 2.4 switch 句 o 2.5 函数调用 o 2.6 悬挂else 问题 3 链接 o 3.1 你必须自己检查外部类型 4 义缺陷 o 4.1 表达式求值顺序 o 4.2 、||和!运算符 o 4.3 下标从零开始 o 4.4 C 并不总是转换实参 o 4.5 指针不是数组 o 4.6 避 提喻法 o 4.7 空指针不是空字符串 o 4.8 整数溢出 o 4.9 移位运算符 5 库函数 o 5.1 getc()返回整数 o 5.2 缓冲输出和内存分配 6 预处理器 o 6.1 宏不是函数 o 6.2 宏不是类型定义 7 可移植性缺陷 o 7.1 一个名字中都有什么 o 7.2 一个整数有多大 o 7.3 字符是带符号的还是无符号的 o 7.4 右移位是带符号的还是无符号的 o 7.5 除法如何舍入 o 7.6 一个随机数有多大 o 7.7 大小写转换 o 7.8 先释放,再重新分配 o 7.9 可移植性问题的一个实例 8 这里是空闲空间 参考 脚注 0 简介 C 言及其典型实现被设计为能被专家们容易地使用。这门语言简洁并附有表达力。但有一些限制可 以保护那些浮躁的人。一个浮躁的人可以从这些条款中获得一些帮助。 在本文中,我们将会看一看这些未可知的益处。这是由于它的未可知,我们无法为其进行完全的分类。 不过,我们仍然通过研究为了一个C 程序的运行所需要做的事来做到这些。我们假设读者对C 语言至少有 个粗浅的了解。 第一部分研究了当程序被划分为记号时会发生的问题。第二部分继续研究了当程序的记号被编译器组 合为声明、表达式和 句时会出现的问题。第三部分研究了由多个部分组成、分别编译并绑定到一起的C 程序。第四部分处理了概念 的误解:当一个程序具体执行时会发生的事情。第五部分研究了我们的程序 和它们所使用的常用库之间的关系。在第六部分中,我们注意到了我们所写的程序也不并不是我们所运行 的程序;预处理器将首先运行。最后,第七部分讨论了可移植性问题:一个能在一个实现中运行的程序无 法在另一个实现中运行的原因。 1 词法缺陷 编译器的第一个部分常被称为词法分析器 (lexica

文档评论(0)

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

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

1亿VIP精品文档

相关文档