微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.rodata 和 .rdata 有什么区别

如何解决.rodata 和 .rdata 有什么区别

我已经看到 .rodata.rdata 都被用作段。我应该使用哪一种,它们之间有什么区别?

解决方法

.rodata 和 .rdata 有什么区别

主要(唯一?)差异在于文化。

对于链接器和加载器(以及目标文件格式),您可以使用任何您喜欢的名称。只要(在链接期间)应该在同一部分中的内容对该部分使用相同的名称,并且该部分的属性得到充分描述(例如使用链接描述文件,包括用于操作系统)。如果您愿意处理额外的麻烦,也没有什么可以阻止您拥有多个单独的部分(例如,可能使用“rdata_initialization”、“rdata_frequently_used”和“rdata_rarely_used”来改善缓存局部性)。

但是,为了方便(考虑到大多数人不会对节做任何特殊的事情),为了确保工具对同一节使用相同的名称,编译器使用特定操作系统的“正常”作为默认值,并且将假设 Windows 使用“.rdata”(因为这对 Windows 来说是正常的)和“rodata”用于 *nix 克隆(因为这对 Unix 来说是正常的)。

,

RODATA 用于 ELFRDATA 用于 COFFMach-O 中最接近的等价物是 __TEXT,__const

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。