c高级字长字节序对齐

2019-07-13 07:15发布

c高级字节序、字长、数据对齐

字长

计算机一次完成处理的数据—字。 不同体系结构,字长不同,目前常见的为32位字长处理器。 为了解决不同体系结构不同字长问题,嵌入式linux中给出了:
  1. 不透明数据类型:隐藏了内部格式结构;例如保存进程标识符的pid_t实际长度被隐藏;
  2. 透明数据类型:长度明确的数据类型;在嵌入式中,储存硬件操作需要用到的数据类型,一般放在驱动文件,使用typedef映射到对应数据类型,如
typedef unsigned char _u8;

数据对齐

这个主要在结构体中,计算结构体占用内存:对于32bit系统来说,默认的4字节对齐。当数据类型长度不够4字节时,自动占用,使之成为4的倍数;如: struct test{ int a; //4bytes char b; //1bytes,补齐4个字节,因此占用4bytes long c; //8bytes }; //结构体占用内存为16bytes

字节序

  1. 小端模式: 低字节—低地址
  2. 大端模式: 高字节—低地址