C零碎语法
目录
文章目录
- C零碎语法
- 1.内存布局
- 2. 内存对齐
- 2.1结构体内存对齐
- 2.1应用
1.内存布局
2. 内存对齐
2.1结构体内存对齐
三条原则:
(1)结构体变量的 起始地址能够被其最宽的成员大小整除。
(2)结构体每个成员相对于 起始地址的偏移能够被其 自身大小整除,如果不能则 在前一个成员后面补充字节。
(3)结构体总体大小能够 被最宽的成员的大小整除,如不能则 在后面补充字节。
2.1应用
(1)用保留变量替代填充字节
typedef struct test_struct
{
char a;
char reserve0; /* 保留成员 */
short b;
char c;
int d;
char e;
char reserve1[3]; /* 保留成员 */
}test_struct;
(2)调整结构体成员的位置
typedef struct test_struct
{
char a;
char c;
short b;
int d;
char e;
}test_struct;