主要观点:理想情况下程序应在各处运行,但即使使用高级“可移植”语言如 Python 也并非易事,文中聚焦于在 Gentoo 期间所见所闻的跨架构问题。
关键信息:
- 32 位系统上使程序出错的因素,如基本整数类型大小(除 long 外大多为 32 位)、地址空间大小(最多 4GiB)、大文件支持(相关类型 32 位)、time_t 的 y2k38 问题等。
- 不同架构的其他通用问题,如字节序(如今主流是小端序)、char 有符号性、严格对齐(多数平台未满足会有性能或崩溃问题)、栈大小(易导致栈溢出)。
- x87 数学模式下浮点计算的精度差异及不同优化级别导致的舍入问题,以及 long double 类型的精度不确定性。
重要细节: - 程序示例展示 32 位系统上内存分配、大文件打开、时间戳处理等问题,如 32 位程序在 64 位系统和 32 位系统上的不同表现。
- 详细解释各种架构相关问题的原理和影响,如字节序对二进制数据格式的影响、对齐问题对程序的影响等。
- 列举不同架构下浮点计算的差异及示例,如 x87 模式和 SSE 模式下的浮点运算结果不同。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。