《代码大全2》(英文限量珍藏版)《程序员修炼之道》《计算机程序的构造和解释》《C程序设计语言》《算法导论》《重构 改善既有代码的设计》《人月神话》《设计模式》(典藏版)《计算机程序设计艺术》《编译原理》《深入浅出设计模式》《代码整洁之道》《编程珠玑》《修改软件的艺术》《编码:隐匿在计算机软硬件背后的语言》《黑客与画家》《深入理解计算机系统》《HTTP权威指南》《重来》《集体智慧编程》《活着》《编程之美》《程序员思维修炼》《系统化思维导论》《大话数据结构》《UNIX网络编程》《高性能Linux服务器运维实战》《TCP/IP详解》《计算机网络:自顶向下方法》《UNIX环境高级编程》《程序员的自我修养》《数据密集型应用系统设计》《现代操作系统》《操作系统真象还原》《Windows核心编程》《深入理解LINUX内核》《传世经典书丛:UNIX编程艺术》《清醒思考的艺术》《C和指针》《C专家编程》《C 陷阱与缺陷》《C++ Primer Plus》《STL源码剖析》《Effective C++》《深度探索C++对象模型》《Java核心技术》《Effective Java中文版》《深入理解Java虚拟机》《Java并发编程实战》《轻量级Java Web整合开发》《精通Spring》《Java编程思想》《Java性能权威指南》《大话设计模式》《图解HTTP》《Redis实战》《Redis设计与实现》《高性能MySQL》《鸟哥的Linux私房菜》《Spring Cloud Alibaba微服务原理与实战》《第一本Docker书》《MySQL必知必会》《MySQL技术内幕:InnoDB存储引擎》《深入浅出MySQL》《SQL基础教程》《CSS权威指南》《CSS揭秘》《CSS世界》《Head First HTML与CSS》《零基础学HTML5+CSS3》《HTML5+CSS3+JavaScript从入门到精通》《JavaScript DOM编程艺术》《JavaScript高级程序设计》《JavaScript语言精粹》《你不知道的JavaScript 》《JavaScript设计模式与开发实践》《ES6标准入门》《深入理解ES6》《高性能JavaScript》《数据结构与算法JavaScript描述》《JavaScript ES6 函数式编程入门经典》《HTML5权威指南》《锋利的jQuery》《深入React技术栈》《React状态管理与同构实战》《React进阶之路》《React学习手册》《React Native移动开发实战》《React+Redux前端开发实战》《Spring Boot+Vue全栈开发实战》《Vue.js项目实战》《Vue.js入门与商城开发实战》《Vue.js 从入门到实战》《Vue.js实战》《深入浅出Node.js》《Node.js实战》《Node.js无服务器应用实战》《Node与Express开发》《编写可维护的JavaScript》《大型网站技术架构 核心原理与案例分析》《Web性能权威指南》《点石成金》

《C 陷阱与缺陷》

点击购买

编辑推荐

1.ACCU主席Francis Glassborow倾力推荐,影响了国内外好几代程序员的经典作品;
2.C++业界资深技术大神、C++标准委员会成员、C++沉思录作者Andrew Koenig的成名著作;
3.全球畅销30余年,中文版累销100000+册;
4.本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。
聆听大师教诲 掌握编程精髓
本书对会让程序预期行为与实际行为产生很大不同的C语言特性进行了详细介绍。本书通过具体的案例和有帮助的建议来演示并介绍C语言中的这些陷阱与缺陷。本书每章末尾还包含了一些思考和相应的讨论。
即使是C编程专家,也会经常遇到一些需要数天调试才能修复的问题。本书中的每个示例都会让C程序员陷入困境,本书将通过展示这些困境来帮助读者预防这些问题。

除了书中的这些示例之外,本书还提供了下面这些建议:
避免离一(off-by-one)错误;
理解和构建函数声明;
理解指针和数组之间的微妙关系。

本书源自作者十多年的C编程经验总结,对于任何曾经编写过C程序的人来说(无论是新手还是专家),本手都是理想的阅读资料。

内容简介

《C陷阱与缺陷》作者以自己1985年在贝尔实验室时发表的一篇论文为基础,结合自己的工作经验将这篇论文扩展成对C程序员具有珍贵价值的经典著作。本书的出发点不是批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。
《C陷阱与缺陷》分为8章,分别从词法陷阱、语法陷阱、语义陷阱、链接、库函数、预处理器、可一致性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。
《C陷阱与缺陷》适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备图书。

作者简介

Andrew Koenig,AT&T大规模程序研发部(前贝尔实验室)成员。他从1986年开始从事C语言的研究,1977年加入贝尔实验室。他编写了一些早期的类库,并在1988年组织召开了第一个具有相当规模的C++会议。在ISO/ANSI C++委员会成立的1989年,他就加入了该委员会,并一直担任项目编辑。他已经发表了100多篇C++方面的论文,并在Addsion-Wesley出版了C Traps and Pitfalls 一书(中文版名为《C缺陷与陷阱》,由人民邮电出版社出版),还应邀到世界各地演讲。
Anderw 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引发的问题 28

第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章 建议与答案 123
8.1 建议 124
8.2 答案 128
附录A printf、varargs与stdarg 147
附录B Koenig和Moo夫妇访谈 169

链接: https://fly63.com/course/26_1183