《C陷阱与缺陷》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:(美)Andrew Koenig著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:7115171793
  • 页数:174 页
图书介绍:本书分为8章,从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题,并给出了若干具有实用价值的建议。

第0章 导读 1

第1章 词法“陷阱” 5

1.1=不同于== 6

1.2&和|不同于&&和‖ 8

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

1.4整型常量 10

1.5字符与字符串 11

第2章 语法“陷阱” 15

2.1理解函数声明 15

2.2运算符的优先级问题 19

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

2.4 switch语句 26

2.5函数调用 28

2.6“悬挂”else引发的问题 29

第3章 语义“陷阱” 33

3.1指针与数组 33

3.2非数组的指针 39

3.3作为参数的数组声明 41

3.4避免“举隅法” 43

3.5空指针并非空字符串 44

3.6边界计算与不对称边界 45

3.7求值顺序 57

3.8运算符&&、‖和! 59

3.9整数溢出 61

3.10为函数main提供返回值 62

第4章 连接 65

4.1什么是连接器 65

4.2声明与定义 67

4.3命名冲突与static修饰符 69

4.4形参、实参与返回值 70

4.5检查外部类型 77

4.6头文件 80

第5章 库函数 83

5.1返回整数的getchar函数 84

5.2更新顺序文件 85

5.3缓冲输出与内存分配 86

5.4使用errno检测错误 88

5.5库函数signal 89

第6章 预处理器 93

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

6.2宏并不是函数 94

6.3宏并不是语句 99

6.4宏并不是类型定义 101

第7章 可移植性缺陷 103

7.1应对C语言标准变更 104

7.2标识符名称的限制 106

7.3整数的大小 107

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

7.5移位运算符 109

7.6内存位置0 110

7.7除法运算时发生的截断 111

7.8随机数的大小 113

7.9大小写转换 113

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

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

第8章 建议与答案 121

8.1建议 122

8.2答案 126

附录A PRINTF,VARARGS与STDARG 145

附录B Koenig和Moo夫妇访谈 167