<分区>
有人可以向我解释一下 C 中的对齐方式是什么吗? 我是 C 的初学者,我不能完全知道如何使用它。
main(){
int i1 = 1, i2 = -1;
unsigned int ui1 = 1, ui2 = -1;
long l1 = 2, l2 = -2;
unsigned long ul1 = 2, ul2 = -2;
float f1 = 2.5;
double d1 = 2.5;
char c = 'A';
}
我必须检查所附程序代码中各个变量的地址是否可以被 2、4 和 8 整除。
这与变量的大小和对齐方式有什么关系?
如果您能提供合乎逻辑的解释,我将不胜感激。
额外代码(从评论中转录):
if( *w_i1 % 2 == 0 )
{
printf("Address of i1 divisible by 2\n");
}
else
printf("No by 2\n");
if( *w_i1 % 4 == 0 )
{
printf( "Address of i1 divisible by 4\n" );
}
else
printf("No by 4\n");
if( *w_i1 % 8 == 0 )
{
printf( "Address of i1 divisible by 8\n" );
}
else
printf("No by 8\n");