说添加32位对齐值会产生32位对齐是否正确?假设一个32位对齐的数字将2个次要位设置为0,我会说是。
答案 0 :(得分:3)
“值”未对齐,变量为。
但是如果添加两个32位宽的整数类型,结果表达式也将是32位。具体类型取决于操作数的实际类型。
如果你的意思是表示具有32位对齐的地址的两个值是否会产生相同的结果,那么答案是肯定的,假设每个字节有8位。
这样的值可以被4整除,因此它的格式为4*x
。因此,如果您有两个这样的值,添加它们会为您提供4*a + 4*b == 4*(a+b)
。所以结果也可以被4整除。
但请注意,添加两个指针是不合法的。但是,您可以向指针添加整数值。
答案 1 :(得分:2)
说添加32位对齐值会产生32位对齐是否正确?假设一个32位对齐的数字将2个次要位设置为0,我会说是。
不,这是不正确的,因为对齐是存储的特征,而不是值。
答案 2 :(得分:2)
假设您的意思是32位对齐的地址......
如果整数变量addrA
包含32位对齐的地址,则表示位0和1设置为0.如果addrB
的情况相同,那么结果加法,无论是高位,也将位0和1设置为0。
因此,对你的意思做出一些假设,是的,添加这两个32位对齐的地址将始终产生一个32位对齐的地址。
另外,由于我假设你指的是地址,另外要考虑的是如果你在指针上操作,就不能添加两个指针。如果一个是指针而一个是整数,那么将使用pointer arithmetic。
答案 3 :(得分:0)
运算符+
不会产生内存对象,没有必要谈论结果对齐。