【读书笔记】《C陷阱与缺陷》第7章:可移植性陷阱解析 | 编写跨平台C程序
【读书笔记】《C陷阱与缺陷》第7章:可移植性陷阱解析 | 编写跨平台C程序
在底层的角度下,一个程序就是一个由符号(token)
或者记号
组成的序列,就像一本书(程序)也只是一个单词(token)序列。还可以把程序看作语句和声明的序列,就像可以把书看作句子的序列一样。把程序分割成符号的过程叫做词法分析
。
写作本书的出发点不是要批判C语言,而是帮助C程序员绕过编程过程中的陷阱和障碍。全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷
等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。
(关注不迷路哈!!!)
文章目录
- 【读书笔记】《C陷阱与缺陷》第7章:可移植性陷阱解析 | 编写跨平台C程序
-
- 前言
- 一、应对C语言标准变更
-
- 问题场景
- 解决方案
- 二、标识符名称的限制
-
- 重要规则
- 危险示例
- 三、整数类型的大小选择
-
- 类型长度规则
- 可移植方案
- 四、字符的符号性问题
-
- 问题本质
- 错误转换
- 正确转换
- 五、移位运算符的陷阱
-
- 两大问题
- 可移植写法
- 六、空指针的特殊性
-
- 危险操作
- 检测方法
- 七、整数除法的截断方式
-
- 数学关系
- 实现差异
- 可移植方案
- 八、随机数范围的处理
-
- 历史问题
- 可移植方案
- 九、大小写转换的实现
-
- 历史宏定义
- 安全方案
- 十、内存分配的特殊历史
-
- 老式realloc用法
- 现代用法
- 十一、综合示例:数字打印函数
-
- 初始版本(有问题)
- 最终可移植版本
- 十二、实战总结与建议
- 十三、读后感
前言
- C语言的可移植性是其重要优势,但不同编译环境和硬件平台的差异仍会导致潜在问题。
- 本章深入分析整数大小、字符符号性、移位运算、内存处理等可移植性陷阱,帮助开发者编写真正跨平台的C程序。