可能重复:
C 结构大小不一致
对于以下程序,我想获取结构的大小。但是,它的大小是 12 而不是4*4=16
. 这是否意味着每个元素都可以与不同的焊盘编号对齐?像int
4 和short
2 一样,但在这种情况下 char 应该有 1。
谢谢。
#include <stdio.h>
struct test{
int a;
char b;
short c;
int d;
};
struct test A={1,2,3,4};
int main()
{
printf("0X%08X\n",&A.a);
printf("0X%08X\n",&A.b);
printf("0X%08X\n",&A.c);
printf("0X%08X\n",&A.d);
printf("%d\n",sizeof(A));
}
结果是:
0X00424A30
0X00424A34
0X00424A36
0X00424A38
12