c高级字节序、字长、数据对齐
字长
计算机一次完成处理的数据—字。
不同体系结构,字长不同,目前常见的为32位字长处理器。
为了解决不同体系结构不同字长问题,嵌入式linux中给出了:
- 不透明数据类型:隐藏了内部格式结构;例如保存进程标识符的pid_t实际长度被隐藏;
- 透明数据类型:长度明确的数据类型;在嵌入式中,储存硬件操作需要用到的数据类型,一般放在驱动文件,使用typedef映射到对应数据类型,如
typedef unsigned char _u8;
数据对齐
这个主要在结构体中,计算结构体占用内存:对于32bit系统来说,默认的4字节对齐。当数据类型长度不够4字节时,自动占用,使之成为4的倍数;如:
struct test{
int a;
char b;
long c;
};
字节序
- 小端模式: 低字节—低地址
- 大端模式: 高字节—低地址