結構體為:
struct A {
int a;
char b;
double c;
};
struct B {
int a;
double c;
char b;
};
int main() {
printf("%d %d", sizeof(A), sizeof(B));
}
在64位系統下,輸出了 16 24
。
對於A來說,結構如下:
|int a(32位)|char b(8位)|佔用(24位)| => 第0~7個位元組
|double c(64位)| => 第8~15個位元組
總共16個位元組。
對B來說,結構性如下:
|int a(32位)|佔用(32位)| => 第0~7個位元組
|double c(64位)| => 第8~15個位元組
|char b(8位)|佔用(56位)| => 第16~23個位元組
總共24個位元組。