内存模型
来自 cppreference.com
定义了 C++ 抽象机器的计算机内存存储语义。
C++ 程序可用的内存是一个或多个连续的字节序列。内存中的每个字节都有唯一的地址。
[编辑] 字节
一个字节是内存中最小的可寻址单元。它被定义为一个连续的位序列,足够大到可以容纳
- 任何
UTF-8
代码单元的值(256 个不同的值)和
|
(直到 C++23) |
|
(自 C++23 起) |
与 C 类似,C++ 支持大小为 8 位及更大的字节。
类型 char、unsigned char 和 signed char 使用一个字节用于存储和 值表示。字节中的位数可以通过 CHAR_BIT 或 std::numeric_limits<unsigned char>::digits 访问。
[编辑] 内存位置
一个内存位置是
注意:语言的各种特性,例如 引用 和 虚函数,可能涉及其他内存位置,这些位置无法被程序访问,但由实现管理。
struct S { char a; // memory location #1 int b : 5; // memory location #2 int c : 11, // memory location #2 (continued) : 0, d : 8; // memory location #3 struct { int ee : 8; // memory location #4 } e; } obj; // The object “obj” consists of 4 separate memory locations
[编辑] 另请参阅
C 文档 for 内存模型
|