小苏子
小苏子PDF在线图书

C和C++经典著作:C陷阱与缺陷 作者:(美)Andrew Koenig

C和C++经典著作:C陷阱与缺陷 作者:(美)Andrew Koenig

C和C++经典著作:C陷阱与缺陷 出版社:人民邮电出版社

C和C++经典著作:C陷阱与缺陷 内容简介

C和C++经典著作:C陷阱与缺陷 目录

C和C++经典著作:C陷阱与缺陷 精彩文摘

《C和C++经典著作:C陷阱与缺陷》适合有一定经验的C程序员阅读学习,即便你是C编程高手,《C和C++经典著作:C陷阱与缺陷》也应该成为你的案头必备书籍。作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作《C和C++经典著作:C陷阱与缺陷》的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。《C和C++经典著作:C陷阱与缺陷》分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了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.1 0为函数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 内存位置07.7 除法运算时发生的截断7.8 随机数的大小7.9 大小写转换7.1 0首先释放,然后重新分配7.1 1可移植性问题的一个例子第8章 建议与答案8.1 建议8.2 答案附录A PRINTF,VARARGS与STDARG附录B Koenig和Moo夫妇访谈第1章 词法“陷阱”当我们阅读一个句子时,我们并不去考虑组成这个句子的单词中单个字母的含义,而是把单词作为一个整体来理解。确实,字母本身并没有什么意义,我们总是将字母组成单词,然后给单词赋予一定的意义。对于用C语言或其他语言编写的程序,道理也是一样的。程序中的单个字符孤立来看并没有什么意义,只有结合上下文才有意义。因此,在p->s =“->”;这个语句中,两处出现的“-”字符的意义大相径庭。更精确地说,上式中出现的两个“-”字符分别是不同符号的组成部分:第一个“-”字符是符号->的组成部分,而第二个“-”字符是一个字符串的组成部分。此外,符号->的含义与组成该符号的字符“-”或字符“>”的含义也完全不同。术语“符号”(token)指的是程序的一个基本组成单元,其作用相当于一个句子中的单词。从某种意义上说,一个单词无论出现在哪个句子,它代表的意思都是一样的,是一个表义的基本单元。与此类似,符号就是程序中的一个基本信息单元。而组成符号的字符序列就不同,同一组字符序列在某个上下文环境中属于一个符号,而在另一个上下文环境中可能属于完全不同的另一个符号。

赞(0)
未经允许不得转载:小苏子图书 » C和C++经典著作:C陷阱与缺陷 作者:(美)Andrew Koenig