#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ struct A{ int *a; short b; int c; char d; float e; double f; }; struct A a; printf("0x%x [0,1,2,3]\n",&a.a); printf("0x%x [4,5]\n",&a.b); printf("0x%x [8,9,10,11] 規則1\n",&a.c); printf("0x%x [12]\n",&a.d); printf("0x%x [16,17,18,19] 規則1\n",&a.e); printf("0x%x [24,25,26,27,28,29,30,31]\n",&a.f); printf("%d\n",sizeof(struct A)); return 0;}
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ struct B{ char a; int b; }; struct A{ int *a; short b; struct B b1; int c; char d; float e; double f; }; struct A a; printf("0x%x [0,1,2,3]\n",&a.a); printf("0x%x [4,5]\n",&a.b); printf("0x%x [8] 規則2\n",&a.b1.a); printf("0x%x [12,13,14,15]\n",&a.b1.b); printf("0x%x [16,17,18,19] 規則1\n",&a.c); printf("0x%x [20]\n",&a.d); printf("0x%x [24,25,26,27] 規則1\n",&a.e); printf("0x%x [32,33,34,35,36,37,38,39]\n",&a.f); printf("%d\n",sizeof(struct A)); return 0;}
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ struct A{ short a; double b; }; struct A a; printf("0x%x [0,1]\n",&a.a); printf("0x%x [8,9,10,11,12,13,14,15] 規則1\n",&a.b); printf("%d 規則3\n",sizeof(struct A)); return 0;}
#include <stdio.h>#include <stdlib.h>#pragma pack(4)int main(int argc, char *argv[]){ struct A{ short a; short b; double c; }; struct A a; printf("0x%x [0,1]\n",&a.a); printf("0x%x [2,3] 規則4\n",&a.b); printf("0x%x [4,5,6,7,8,9,10,11] 規則4\n",&a.c); printf("%d 規則5\n",sizeof(struct A)); return 0;}