Skip to content

Commit ea4e47e

Browse files
committed
添加 const constexpr static 说明
1 parent 6cd37a2 commit ea4e47e

2 files changed

Lines changed: 35 additions & 14 deletions

File tree

apue/01-进程/readme

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,5 @@
11

22
## 计算机操作系统-进程管理
3-
### 存储布局
4-
* 正文段(text)
5-
* 存储程序本身, 只读, 可共享
6-
* 内存中只存储一份, 磁盘中需要存储
7-
* 数据段(data)
8-
* 存储初始化的全局变量或静态变量
9-
* 内存中每个进程一份, 磁盘中需要存储
10-
* bss
11-
* 存储未初始化的全局变量或静态变量
12-
* 内存中每个进程一份, 磁盘中不需要存储
13-
* 程序启动时初始化为 0
14-
* 栈: 磁盘中不需要存储
15-
* 堆: 磁盘中不需要存储
16-
* 使用 size 可以查看各个部分的大小
173

184
## 状态及改变
195
* 就绪

cpp/readme.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,40 @@
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

0 commit comments

Comments
 (0)