嵌入式C语言中结构体使用方法与技巧
一、内存对齐

内存对齐是指一个数据类型在内存中存放时,对其地址的要求。简单来说内存对齐就是使得其内存地址是该类型大
小的整数倍,例如 double 类型的变量,其内存地址需是 8 的倍数(double 大小为 8 字节)。
内存对齐的主要目的就是满足部分 CPU 对内存读写的要求以及优化 CPU 读取内存的效率。在 ARM 架构下,如
果读取的内存是非对齐的(例如一个 4 字节的 int 落在一个奇数的内存地址上)则会直接抛出异常。
struct Node{char mark;int size;char flag;
};

由于 int 在本机器上占用 4 字节,所以其起始地址必须是 4 的倍数,例如:
0x7ffeef361260。所以第一个 char 类型后面会有3 字节的内存空隙。而最后一个 char 类型后会有 3 字节空隙的原因则是遵循另一个原则:结构体的大小为对齐系数的整数倍。在
