8.23 模块设计进阶:跨平台设计
C标准库 ANSIC
C语言本身是跨平台的:C标准和C标准库
系统调用:win32 API 和 Linux POSIX API
C标准库封装了不同平台的系统调用
数据类型
使用标准C语言类型
确定大小的可移植数据类型
特定内核数据类型dev_t、pid_t
特定于平台的类型:如int对编译器和CPU的依赖
字节序
大端模式与小端模式
大端与小端之间的转换
内存对齐
操作系统相关
将跟操作系统相关的都封装为统一的接口
隐藏不同操作系统的接口差异
头文件路径分隔符使用通用的”/”,而不是Windows下的”\”
系统平台相关
禁止使用编译器的扩展特性、尽量按C标准来写
尽量不要使用内嵌汇编
打开所有的警告选项,高度重视出现的每一个警告
用条件编译,兼容适配各个平台的特性