编译器编译之后的目标文件结构:
--------------
代码段
--------------
数据段
--------------
为初始化的数据
--------------
注意:
程序被调用,加载到内存之后,堆栈和堆的空间是操作系统动态分配的空间:
--------------
代码段 TEXT -->代码(机器指令)
--------------
数据段 DATA -->已经初始化的局部变量和全局变量,以及常量
--------------
未初始化的数据 BSS -->未做初始化的全局变量或静态全局变量
--------------
堆栈(栈 ) Stack -->临时变量,如函数形参,for循环小括号中的变量,函数嵌套调用的时候都会
在这里申请空间,也就是我们常说的"压栈"
--------------
堆 Heap -->malloc函数申请空间就是在堆里申请的,但是需要我们人工free掉,
不然就会内错泄漏。
--------------
编译器编译之后的目标文件结构
最新推荐文章于 2021-04-29 07:53:43 发布