新闻  |   论坛  |   博客  |   在线研讨会
bss段data段
电子禅石 | 2019-05-28 09:14:51    阅读:2565   发布文章



data段(存放已初始化的数据):存放在编译阶段(而非运行时)就能确定的数据,可读可写。也就是通常所说的静态存储区,赋了初值的全局变量和赋初值的静态变量存放在这个区域,常量也存放在这个区域;
bss段(存放未初始化的数据):定义而没有赋初值的全局变量和静态变量,放在这个区域;
ps:
text段是程序代码段,它是由编译器在编译连接时自动计算的,当你在链接定位文件中将该符号放置在代码段后,那么该符号表示的值就是代码段的大小,编译连接时,该符号所代表的值自动代入到源程序中。
stack/heap:
栈(stack):保存函数的局部变量和参数。是一种LIFO的数据结构,这意味着最后放到栈上的数据,将会是第一个从栈上移走的数据。栈,另外一个重要的特征是,它的地址空间“向下减少”,即当栈上保存的数据越多,栈的地址就越低。栈(stack)的顶部在可读写的RAM区的最后。
堆(heap):保存函数内部动态内存分配,是另外一种用来保存程序信息的数据结构,更准确的说是保存程序的动态变量。堆是(FIFO)数据结构。它只允许在堆的一端插入数据,在另一端移走数据。堆的地址空间“向上增加”,即当堆上保存的数据越多,堆的地址就越高。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客