如何确定地址是否对齐

时间:2010-10-13 10:13:59

标签: memory-alignment

您能通过查看这些地址中的哪些地址字对齐来判断?

0x000AE430
0X00014432
0X000B0737
0X0E0D8844

1 个答案:

答案 0 :(得分:14)

简短的回答是,是的。但是你必须定义每个字的字节数。有些架构将一个字称为两个字节,将四个字节称为双字。在任何情况下,您只需在心理上计算addr%word_sizeaddr&(word_size - 1),然后查看它是否为零。当地址是十六进制时,它是微不足道的:只看最右边的数字,看看它是否可以被字大小整除。

对于4字节的字大小,示例的第二和第三个地址是未对齐的。第二个有2个,第三个有7个,它们都不能被4整除。对于2个字节的字大小,只有第三个地址是未对齐的。