计算机系统篇之链接(10):.bss、.data 和 .rodata section 之间的区别

编程入门 行业动态 更新时间:2024-10-28 03:26:28

<a href=https://www.elefans.com/category/jswz/34/1769758.html style=计算机系统篇之链接(10):.bss、.data 和 .rodata section 之间的区别"/>

计算机系统篇之链接(10):.bss、.data 和 .rodata section 之间的区别

计算机系统篇之链接(10):.bss、.data 和 .rodata section 之间的区别

Author:stormQ

Friday, 08. May 2020 10:20PM


Section 名称区别1:用途不同区别2:在目标文件中占用的空间不同
.rodata用于维护只读数据,比如:常量字符串、带 const 修饰的全局变量和静态变量等在目标文件中占用空间
.data用于维护初始化的且初始值非0的全局变量和静态变量(不带 const 修饰)在目标文件中占用空间
.bss用于维护未初始化的或初始值为0的全局变量和静态变量(不带 const 修饰)不占用目标文件的空间

注:

  • 对于未初始化的全局变量和静态变量的初始值在运行期会被赋为0。从而,达到 .bss section 用于减少目标文件的大小的目的。

  • 临时变量(即局部非静态变量)既不出现在.data中,也不出现在.bss中。它由运行期栈维护。

  • 严格地讲,gcc 将 C 程序(以 .c 结尾的源文件)中的未初始化的全局变量标记为COMMON<

更多推荐

计算机系统篇之链接(10):.bss、.data 和 .rodata section 之间的区别

本文发布于:2024-02-10 13:16:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1675676.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:计算机系统   区别   链接   bss   rodata

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!