gpt4 book ai didi

linker - 什么是二进制格式的 "Alignment"字段?为什么需要它?

转载 作者:行者123 更新时间:2023-12-01 04:19:45 24 4
gpt4 key购买 nike

Sprite 文件格式我们有 对齐 Segment Header Table 中的字段又名 Program Header Table .

如果是 Windows PE文件格式他们将其提升到下一个级别,Sections 有两个对齐值,一个在磁盘文件中,另一个在内存中。 PE 文件头指定了这两个值。

我对这种对齐方式一无所知。我们需要它做什么?如何以及在哪里使用它?同样,我不知道二进制文件格式上下文中的对齐是什么,但我们为什么需要它?

最佳答案

好吧,对齐通常是拉伸(stretch)某个值的存储大小以占用一些“圆形”空间,例如 32、64、128 位等。

如果我们谈论的是二进制格式,可能是为了优化格式处理。当您读/写一些“圆形”数据长度部分时,读/写操作会更快。

我为你找到了一个读物,用我现在能想到的更好的词来表达:

Data structure alignment

Data structure alignment is the way data is arranged and accessed in computer memory. It consists of two separate but related issues: data alignment and data structure padding. When a modern computer reads from or writes to a memory address, it will do this in word sized chunks (e.g. 4 byte chunks on a 32-bit system). Data alignment means putting the data at a memory offset equal to some multiple of the word size, which increases the system's performance due to the way the CPU handles memory. To align the data, it may be necessary to insert some meaningless bytes between the end of the last data structure and the start of the next, which is data structure padding.

关于linker - 什么是二进制格式的 "Alignment"字段?为什么需要它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2391865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com