如何确定地址是否对齐

use*_*325 4 memory-alignment

你能看出他们这些地址中哪些是字对齐的吗?

0x000AE430
0X00014432
0X000B0737
0X0E0D8844

vha*_*lac 14

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

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