File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11
22## 计算机操作系统-进程管理
3- ### 存储布局
4- * 正文段(text)
5- * 存储程序本身, 只读, 可共享
6- * 内存中只存储一份, 磁盘中需要存储
7- * 数据段(data)
8- * 存储初始化的全局变量或静态变量
9- * 内存中每个进程一份, 磁盘中需要存储
10- * bss
11- * 存储未初始化的全局变量或静态变量
12- * 内存中每个进程一份, 磁盘中不需要存储
13- * 程序启动时初始化为 0
14- * 栈: 磁盘中不需要存储
15- * 堆: 磁盘中不需要存储
16- * 使用 size 可以查看各个部分的大小
173
184## 状态及改变
195* 就绪
Original file line number Diff line number Diff line change 11
2+ # const, constexpr 和 static
3+ * 在哪儿存储
4+ * 自动存储期: 非静态局部变量 --- 栈
5+ * 静态存储期: 静态 或 全局变量 --- rodata 或 data
6+ * 是否存在, 是否会被编译器优化
7+ * 有没有取地址或绑定引用
8+ * 是否是编译期常量
9+ * const 可能是编译期常量 也可能是运行期常量
10+ * constexpr 只可能是编译期常量
11+ * static 作用
12+ * 将 全局变量或函数 的作用域局限在文件中
13+ * 将 函数内变量 的存储位置由 栈 转换到 data 或 rodata, 变量的作用域不变
14+ * 将 类的成员变量或函数 和类绑定, 而不是具体的对象绑定
15+
16+
217# 1. 程序内存结构
18+ * 正文段(text)
19+ * 存储程序本身, 常量
20+ * 磁盘中需要存储
21+ * 内存中只存储一份, 不同的进程可以共享
22+ * 只读
23+ * 数据段(data)
24+ * 存储初始化的全局变量或静态变量
25+ * 磁盘中需要存储
26+ * 内存中每个进程一份, 不同的进程有自己的数据段
27+ * 可修改
28+ * bss
29+ * 存储未初始化的全局变量或静态变量
30+ * 磁盘中不需要存储
31+ * 内存中每个进程一份, 不同的进程有自己的数据段
32+ * 程序启动时初始化为 0
33+ * 可修改
34+ * 栈: 磁盘中不需要存储
35+ * 堆: 磁盘中不需要存储
36+ * 使用 size 可以查看各个部分的大小
37+
338
439
540
You can’t perform that action at this time.
0 commit comments