C陷阱与缺陷

C陷阱与缺陷

作者:[美] Andrew Koenig

出版社:人民邮电出版社

出版年:2008-2-1

评分:8.8

ISBN:9787115171795

所属分类:行业好书

书刊介绍

内容简介

Andrew Koenig

AT&T公司Shannon实验室大规模编程研究部门成员,同时是C++标准委员会的项目编辑。他的编程经验超过30年,其中有15年在使用C++,他已经出版了超过150篇和C++有关的论文,并且在世界范围内就这个主题进行过多次演讲。

作品目录

第0章 导读
第1章 词法“陷阱”
1.1 =不同于==
1.2 & 和 | 不同于&& 和 ||
1.3 词法分析中的“贪心法”
1.4 整型常量
1.5 字符与字符串
第2章 语法“陷阱”
2.1 理解函数声明
2.2 运算符的优先级问题
2.3 注意作为语句结束标志的分号
2.4 switch语句
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 使用errno检测错误
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夫妇访谈
· · · · · ·

作者简介

Andrew Koenig

AT&T公司Shannon实验室大规模编程研究部门成员,同时是C++标准委员会的项目编辑。他的编程经验超过30年,其中有15年在使用C++,他已经出版了超过150篇和C++有关的论文,并且在世界范围内就这个主题进行过多次演讲。

精彩摘录

许多系统中的标准输入/输出库都允许程序打开一个文件,同时进行写入和读出的操作:

——引自第85页


上面的例子代码打开了文件名由变量file指定的文件,对于存取权限的设定表明程序希望对这个文件进行输入和输出操作。编程者也许认为,程序一旦执行上述操作完毕,就可以自由地交错进行读出和写入的操作。遗憾的是,事实总难遂人所愿,为了保持与过去不能同时进行读写操作的程序的向下兼容性,一个输入操作不能随后直接紧跟一个输出操作,反之亦然。如果要同时进行输入和输出操作,必须在其中插入fseek函数的调用。

——引自第85页

相关推荐

微信二维码