mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
c
This commit is contained in:
parent
4fdf297c4d
commit
5f00d7804e
@ -1329,7 +1329,8 @@ int main() {
|
||||
> * ① 将一个数据尽量放到一个步长之内,避免跨步长存储和读取,这称为`内存对齐`。
|
||||
> * ② 在 `32` 位编译模式下,默认以 `4` 字节对齐。在 `64` 位编译模式下,默认以 `8` 字节对齐。
|
||||
|
||||
* 为了满足对齐要求,编译器有时会在数据结构中插入一些“填充”字节,这就会产生一定的内存浪费。例如:假设一个结构体包含一个`char`和一个`int`字段,编译器可能会插入 3 个字节的填充以确保`int`字段对齐到 4 字节的边界。这种填充虽然会浪费少量内存,但可以显著提升数据访问效率,如下所示:
|
||||
* 为了满足对齐要求,编译器有时会在数据结构中插入一些“填充”字节,这就会产生一定的内存浪费。例如:假设一个结构体包含一个`char`和一个`int`字段,编译器可能会插入 3 个字节的填充以确保`int`字段对齐到 4 字节的边界。这种填充虽然会浪费少量内存,但可以显著提升数据访问效率。
|
||||
* 我们可以通过代码,来验证:
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
Loading…
Reference in New Issue
Block a user