2017-06-06 65 views
-5
#include <stdio.h> 

struct temp{ 
char b1; 
double a; 
int f; 
}; 
int main() 
{ 
    struct temp temp1; 
    int size = 0; 

    size = sizeof(temp1); 
} 

爲什麼size值是24而不是20?...在​​32位機器中。C編程結構

先謝謝了...

+0

因爲成員對齊的。 –

+1

您是否在發佈您的問題之前進行搜索?這個問題充滿了重複。 – Stargateur

+1

Google結構填充。 –

回答

0
struct temp{ 
char b1; // 1 byte + 7 bytes padding 
double a; // 8 bytes 
int f; // 4 bytes + 4 bytes padding 
}; 

這是因爲成員的填充:)