提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、为什么写这个系列?
<<c陷阱与指针>>是我一直想结合自己想法写出来的系列。整书读完受益匪浅,既不晦涩难懂,又可动静结合(实操和理论)。
二、整书简述
1.词法“陷阱”
从较低的层面考察,程序是由符号序列所组成的,正如一本书是由一个一个单词组成的一样。将程序分解成符号的过程,称为“词法分析”,这一章考察在程序被词法分析器所分解成各个符号的过程中可能出现的问题。
2.语法“陷阱”
组成程序的这些符号,又可以看成是语句和声明的序列,就好像一本书可以看成是由单词进一步结合而成的句子所组成的集合。无论是对于书而言,还是对于程序而言,符号或者单词如何组成更大的单元的语法细节最终决定了语义。如果没有正确理解这些语法细节,将会出现怎么样的错误?在第二章就此讨论。
3.语义“陷阱”
程序员的本意是希望表示某种事物,而实际表示的却是另外一种事物。这一章中着重讨论语义细节。
4.连接
c程序经常是由若干个部分组成,它们分别进行编译,最后再整合起来。这个过程称为“连接”,是程序和其支持环境之间关系的一部分。
5.库函数
程序的支持环境包括某组库函数。虽然严格说来库函数并不是语言的一部分,但是库函数对任何一个有用的程序都非常重要。特别地,有些库函数几乎每个C程序都要用到。对这些库函数的误用可以说是五花八门。
6.预处理器
由于C预处理器的介入,实际运行的程序并不是最初编写的程序。虽然不同预处理器的实现存在或多或少的差异,但是大部分特性是各种预处理器都支持的。
7.可移植性缺陷
可移植性问题就是在多个平台能运行的问题。当牵涉到可移植性时,哪怕是非常简单的类似整数运算这样的问题,其困难程度也常常会出人意料。
8.建议
提供了有关预防性程序设计的一些建议