【发布时间】:2021-12-13 03:46:37
【问题描述】:
您好,我想了解为什么我应该将我的部分的 Virtualsize 对齐到 0x1000(4096 dec),并且还有其他部分使用的 Virtualsize 空间更少,这些空间根本没有与 SectionAlignment 对齐并且仍然可以正常工作。
这是我正在谈论的一个例子,我基本上是这样做的:
unsigned int align_to_boundary(unsigned int address, unsigned int boundary) {
return (((address + boundary - 1) / boundary) * boundary);}
并传递例如 0x30a 作为我的代码的地址,也就是我的代码大小,并将 SectionAlignment 作为边界参数。
我可以将任何值传递给未对齐的虚拟大小吗?
【问题讨论】:
-
“地址又名大小”呃不。地址和大小是完全不同的东西。
-
@nobody 但它们都需要通过部分对齐和文件对齐来对齐。所以它只是一个计算给定数字的倍数的函数并不重要。
标签: c windows portable-executable