执行过程:
- 预处理:宏定义展开、头文件展开、条件编译、这里不会检查语法
- 编译:检查语法、将预处理后文件编译生成汇编文件
- 汇编:将汇编文件生成目标文件(二进制文件)
- 链接:将目标文件链接为可执行程序
内存分区:
运行前:
代码区:
数据区:
- data已初始化的全局变量、静态变量、常量
- bss未初始化的全局变量、静态变量、常量
运行后:
栈区
- 属于先进后出的数据结构
- 由编译器管理数据开辟和释放
- 变量的生命周期在该函数结束后自动释放掉
堆区
- 容量远远大于栈
- 没有先进后出这样的数据结构
- 由程序员管理开辟(malloc)和管理释放(free)
- 记住手动开辟的要手动释放
posted @
2022-02-13 12:51
黑马金牌编程
阅读(
28)
评论()
收藏
举报