内容摘要

作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。

全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C语言编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。

本书适合有一定经验的C程序员阅读学习,即便你是做嵌入式开发C编程高手,本书也应该成为你的案头必备书籍。

目录

第0章导读

第1章词法“陷阱”

1.1=不同于==

1.2&和|不同于&&和||

1.3词法分析中的“贪心法”

1.4整型常量

1.5字符与字符串

第2章语法“陷阱”

2.1理解函数声明

2.2运算符的优先级问题

2.3注意作为语句结束标志的分号

2.4switch语句

2.5函数调用

2.6“悬挂”else引发的问题

第3章语义“陷阱”

3.1指针与数组

3.2非数组的指针

3.3作为参数的数组声明

3.4避免“举隅法”

3.5空指针并非空字符串

3.6边界计算与不对称边界

3.7求值顺序

3.8运算符&&、||和!

3.9整数溢出

3.10为函数main提供返回值

第4章连接

4.1什么是连接器

4.2声明与定义

4.3命名冲突与static修饰符

4.4形参、实参与返回值

4.5检查外部类型

4.6头文件

第5章库函数

5.1返回整数的getchar函数

5.2更新顺序文件

5.3缓冲输出与内存分配

5.4使用ernlo检测错误

5.5库函数signal

第6章预处理器

6.1不能忽视宏定义中的空格

6.2宏并不是函数

6.3宏并不是语句

6.4宏并不是类型定义

第7章可移植性缺陷

7.1应对C语言标准变更

7.2标识符名称的限制

7.3整数的大小

7.4字符是有符号整数还是无符号整数

7.5移位运算符

7.6内存位置0

7.7除法运算时发生的截断

7.8随机数的大小

7.9大小写转换

7.10首先释放,然后重新分配

7.11可移植性问题的一个例子

第8章建议与答案

8.1建议

8.2答案

附录A:PRINTF,VARARGS与STDARG

附录B:Koenig和Moo夫妇访谈

下载地址:http://pan.baidu.com/s/1mgiazBM

转载于:https://blog.51cto.com/21gprs/1415624

[编程语言]C陷阱与缺陷相关推荐

  1. 《C陷阱与缺陷》第一章【词法“陷阱”】

    前言: 先在这里和关注我的小伙伴们说一声对不起,因为我已经连续三天没更新文章了.是因为学校的线上课程结束了,线下几乎每一天都是满课,写博客的时间少了很多,不过我会在五一假期期间尽量把之前的补回来. 这 ...

  2. 《C陷阱和缺陷》总结

    <C陷阱和缺陷> 第一章 1.1 =不同于== 在C语言中,=作为赋值运算,符号==作为比较,一般而言,赋值运算相对于比较运算出现的更加频繁. 同时,在C语言中赋值运算符号被作为一种操作符 ...

  3. 《C陷阱与缺陷》一导读

    前 言 C陷阱与缺陷 对于经验丰富的行家而言,得心应手的工具在初学时的困难程度往往要超过那些容易上手的工具.刚刚接触飞机驾驶的学员,初航时总是谨小慎微,只敢沿着海岸线来回飞行,等他们稍有经验就会明白这 ...

  4. 《Java解惑》陷阱和缺陷的目录

    陷阱和缺陷的目录 一.词汇问题 1.字母l在许多字体中都与数字1相像. 2.负的十六进制字面常量看起来像是正的. 3.八进制字面常量与十进制字面常量相像. 4.ASCII字符的Unicode转义字符容 ...

  5. 《C陷阱与缺陷》和《C专家编程》两本书又翻印了

    今天花了几个小时逛书店,偶然让我发现了<C陷阱与缺陷>和<C专家编程>这两本书.这让我很惊喜,喜欢收集书的我当然不会错过,一口气,两本书都收录了. 其实这两本我都已经下载了电子 ...

  6. C语言三剑客之《C陷阱与缺陷》一书精华提炼

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 1.C陷阱与缺陷概述 C语言像一把雕刻刀,锋利,并且在技师手中非常有用.和任何锋利的 ...

  7. c语言局限性,C语言陷阱与缺陷.pdf

    C 语言陷阱和缺陷[1] winxos 11-01-28 winxos 11-01-28 原著:Andrew Koenig - AT&T Bell Laboratories Murray Hi ...

  8. 写给大数据从业者:数据科学的5个陷阱与缺陷

    来源 | AI 前线 作者 | 陈炬,责编 | Carol 出品 | CSDN云计算(ID:CSDNcloud) 导读: 这篇分享主要总结了数据从业人员在实践中可能遇到的陷阱与缺陷.跟其他新起的行业一 ...

  9. 《C陷阱与缺陷》一第1章 词法“陷阱”1.1 =不同于==

    本节书摘来自异步社区<C陷阱与缺陷>一书中的第1章,第1.1节,作者 [美]Andrew Koenig,更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 词法 ...

  10. 阅读《C陷阱与缺陷》的知识增量

    看完<C陷阱与缺陷>,忍不住要重新翻一下,记录一下与自己的惯性思维不符合的地方.记录的是知识的增量,是这几天的流量,而不是存量. 这本书是在ASCI C/C89订制之前写的,有些地方有疏漏 ...

最新文章

  1. 生成xml_Java操作XML
  2. 使用LinqToExcel读取Excel
  3. 十一级指针实现百万qq号的增删查改以及排序写入
  4. [选拔赛2 NOIP2018雅礼集训 Day3 u,v,w]玩个三角形(二维差分),玩个球(状压DP+map),玩个树(树上DP)
  5. 投影串口测试程序_串口测试方法和步骤
  6. MathType几个常用字体的名称
  7. 总结2012,展望2013
  8. DeepWalk学习
  9. OpenCasCade标注显示类(独立)
  10. 什么是视频封装格式和编码格式
  11. iOS逆向 和班尼特福迪一起攻克难关(unity)
  12. haskell 基础题解(20)
  13. 现金流量表的编制 (by shany shang)
  14. ORACLE 10064诊断工具,TRCA安装与测试
  15. 几则小故事(网上收集)
  16. [论文阅读-NeRF+SLAM] iMAP:首个隐式场景表征的实时SLAM
  17. PS制作文字扫描效果(仿旧效果)
  18. 人脸属性分析--性别、年龄和表情识别(转)
  19. 虚拟地址到物理地址的转换步骤
  20. GRAIL Efficient Time Series Representation Learning论文阅读笔记(三)

热门文章

  1. 使用squid代理后某些网站无法访问的解决办法(3.1.7版本)
  2. T-SQL语句实现数据库备份与还原功能
  3. IDEA快速升级模块版本号
  4. 04-初始mysql语句
  5. 计算机系统中与存储有关的那些事
  6. [九省联考2018] 一双木棋 chess
  7. 超越阿里云,华为云网络服务竟然这么厉害!
  8. Vue2.0组件之间通信
  9. linux查看端口号占用
  10. 我们是这样写升级日志的,处处可以体现人文情怀