This commit is contained in:
许大仙 2024-10-11 13:05:16 +08:00
parent 4fdf297c4d
commit 5f00d7804e

View File

@ -1329,7 +1329,8 @@ int main() {
> * ① 将一个数据尽量放到一个步长之内,避免跨步长存储和读取,这称为`内存对齐`。
> * ② 在 `32` 位编译模式下,默认以 `4` 字节对齐。在 `64` 位编译模式下,默认以 `8` 字节对齐。
* 为了满足对齐要求,编译器有时会在数据结构中插入一些“填充”字节,这就会产生一定的内存浪费。例如:假设一个结构体包含一个`char`和一个`int`字段,编译器可能会插入 3 个字节的填充以确保`int`字段对齐到 4 字节的边界。这种填充虽然会浪费少量内存,但可以显著提升数据访问效率,如下所示:
* 为了满足对齐要求,编译器有时会在数据结构中插入一些“填充”字节,这就会产生一定的内存浪费。例如:假设一个结构体包含一个`char`和一个`int`字段,编译器可能会插入 3 个字节的填充以确保`int`字段对齐到 4 字节的边界。这种填充虽然会浪费少量内存,但可以显著提升数据访问效率。
* 我们可以通过代码,来验证:
```c
#include <stdio.h>