首页  编辑  

按4字节边界对齐某个数

Tags: /超级猛料/Language.Object Pascal/数组、集合和记录、枚举类型/   Date Created:

我们知道,Windows的内存分配是按4字节内存对齐的,也就是按一个32bit整数对齐,以便提高操作效率,因为如果某些记录,内存块没有按4字节对齐,那么跨了4字节边界的时候,CPU需要寻址2次才能读取到这个数据的!Packed Record的道理也就使类似这个。

那么我们如何来按四字节对齐呢,假设有一个size,我们要按4字节方式对齐,可以用以下代码:

(size + 3) and not 3 即可。

例如

如果size=3,那么按4字节对齐,其值应该是4;

如果size=4,那么按4字节对齐,其值应该是4;

如果size=5,按4字节对齐,其值应该是8;

等等