什么是“对齐”?二进制格式的字段?为什么需要它?
在ELF文件格式中,我们在段头表
(又名程序头表
)中有一个对齐字段。
对于 Windows PE 文件格式,它们将其提升到下一个级别,这些部分有两个对齐值,一个在磁盘文件中,另一个在内存中。 PE 文件头指定这两个值。
我对这种对齐方式一无所知。我们需要它做什么?如何&它用在哪里?再说一次,我不知道二进制文件格式上下文中的对齐是什么,但为什么我们需要它?
In ELF file format we have an Alignment field in Segment Header Table
aka Program Header Table
.
In case of Windows PE file format they take it to next level the Sections have two alignment values, one within the disk file and the other in memory. The PE file header specifies both of these values.
I didn't understand a thing about this alignment. What do we need it for? How & Where is it used? Again, I don't know what is alignment in binary file format context but why do we need it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,对齐通常是拉伸某些值的存储大小以占用一些“圆形”空间,例如 32、64、128 位等。
如果我们谈论二进制格式,则可能会这样做以优化格式处理。当您读/写一些“圆形”数据长度部分时,读/写操作可能会更快。
我为您找到了一本读物,用我现在能想出的更好的词语来表述:
数据结构对齐
Well, alignment is usually stretching the storage size of some value to occupy some "round" space, like 32, 64, 128 bit etc.
If we're talking about binary formats, it may be done in order to optimize format processing. Read/write operations can be quicker when you read/write some "round" data length portions.
I found a reading for you, formulated in better words I can come up with right now:
Data structure alignment