#include<stdio.h> struct A {int A; };int main() {struct A a;printf("%d\n",sizeof(a));return 0; }
運行結果:4
#include<stdio.h> struct A {int a;int b; };int main() {struct A a;printf("%d\n",sizeof(a));return 0; }
運行結果:8
#include<stdio.h> struct A {int a;char b; };int main() {struct A a;printf("%d\n",sizeof(a));return 0; }
運行結果:8
分析:以結構體中最大的數據類型的字節為標準,隨后的基礎數據類型都會跟隨它對齊
#include<stdio.h> struct A {char a; short b; int c;short d;char e; };int main() {struct A a;printf("%d\n",sizeof(a));return 0; }
運行結果:12
a | ? | b | |
c | |||
d | e | ? | |
13 | 14 | 15 | 16 |
32位計算機(主流):
long?????? 8
int????????? 4
short????? 2
char?????? 1
#include<stdio.h> struct A {char a; short b; char c;int d;long long e; };int main() {struct A a;printf("%d\n",sizeof(a));return 0; }
運行結果:24
a | ? | b |
c | ? | |
d | ||
e |