下面的代碼中的結構的大小是什麼?任何人都可以請告訴我如何來下面顯示的結構的大小是24和不20.假設我們的結構填充和int的大小是4並且double的大小是8個字節
typedef struct
{
double d; // this would be 8 bytes
char c; // This should be 4 bytes considering 3 bytes padding
int a; // This would be 4 bytes
float b; // This would be 4 bytes
} abc_t;
main()
{
abc_t temp;
printf("The size of struct is %d\n",sizeof(temp));
}
我asumption是結構的大小是20,當我們考慮的填充,但是當我運行這段代碼的大小被打印成24
'sizeof(char)== 1',always。不是'4'。填充和對齊不會影響成員的大小。 – Dai
@Dai因此'3字節填充'註釋。 –
是的,它是1個字節,但包括3個字節的填充。 – user2520451