5. 内存模型基础、标准原子类型、自旋锁
内存模型基础:对象和 内存位置
书上给出了 4 点:
- 每个变量都是对象,包括对象中的成员。
- 每个对象有至少一个内存位置。
- 每个基本类型(
int
/char
, …)刚好占用一个内存位置。 - 连续位域是同一个内存位置的一部分。
一个标量类型,或者非 0 宽的连续位域构成一个 memory location。
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
可以参考 https://timsong-cpp.github.io/cppwp/n4868/basic.memobj ,这里有讲内存模型、对象模型、生命周期。