爲什麼在第一種情況下不是12? 測試在:gcc和鏗鏘,64位的最新版本的Linux結構在內存大小上有所不同?
struct desc
{
int** parts;
int nr;
};
sizeof(desc); Output: 16
struct desc
{
int** parts;
};
sizeof(desc); Output: 8
struct desc
{
int nr;
};
sizeof(desc); Output: 4
不是不可能的:那是什麼包裝設計。 –
64位 - > 8字節 - >將4個字節更改爲8個字節 - > 16 –
C標準是不可能的; C標準不包含結構/編譯指示包裝 – user411313