【发布时间】:2012-11-10 16:56:43
【问题描述】:
对于以下程序,我想获取结构的大小。但是,它的大小是 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
【问题讨论】:
标签: c