C陷阱与缺陷
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 高巍译
出 版 社: 人民邮电出版社
出版时间: 2003-1-1字数: 224千版次: 第1版第2次页数: 172印刷时间: 2002-11-1开本:印次:纸张: 胶版纸I S B N : 9787115106230包装: 平装编辑推荐
作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。
内容简介
作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。全书分为八章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,本收也应该成为你的案头必备。
作者简介
Andrew Koenig
AT&T大规模程序研发部(前贝尔实验室)成员。他从1986年开始从事C语言的研究,1977年加入贝尔实验室。他编写了一些早期的类库,并在1988年组织召开了第一个相当规模的C++会议。在ISO/ANSI C++委员会成立的1989年,他就加入了该委员会,并一直担任项目编辑。他已经发表了C++方面的100多篇论文,在Addsion-Wesley出版了C Trap and Pitfalls,(《C陷阱与缺陷》)和Ruminations on C++(《C++沉思录》,人民邮电出版社)还应邀到世界各地演讲。
Andrew Koenig不仅有着多年的C++开发、研究和教学经验,而且还亲身参与了C++的演化和变革,对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 库函数signal89
第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 内存位置0110
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与STDARG145
附录B Koenig和Moo夫妇访谈167
媒体评论