全书的内容可以分为七个部分
- “词法”陷阱
- “语法”陷阱
- “语义”陷阱
- 链接(linker)
- 库函数
- 预处理器
- 可移植性
这几个部分对应了编译器的几个阶段,预处理、词法分析、语法分析、语义分析、链接,除此以外还考虑库函数和可移植性问题。
1、“词法”陷阱
2、“语法”陷阱
3、“语义”陷阱
空指针并非空字符串
if(strcmp(p, (char *) 0) == 0)
因为strcmp的实现中会查看指针参数指向的内存中的内容,但是0x0处的内存用户程序不可访问,此操作非法,会导致coredump。
这个问题在系统中出现了多次。
5、库函数
signal