以下結構X
具有3個字節的有效負載和1個字節的填充構成:利用否則會浪費掉的填充空間
struct X
{
short a;
char b;
};
memory layout: aab.
以下結構Y
有4個字節的有效載荷的和填充的2字節:
struct Y
{
X x;
char c;
};
memory layout: aab.c.
有什麼辦法可以保持X
嵌套在Y
裏面並且有sizeof(X) == 4 && sizeof(Y) == 4
?
memory layout: aabc
理想情況下,我想這樣的空間優化,爲各類X
(認爲X
作爲模板參數)。
爲什麼要禁用填充?如果你打算將它用於序列化,我不推薦這種方法。 –
我不想禁用填充。我希望'X'被填充,而Y使用'X'的填充空間作爲額外的字符。 – fredoverflow
所以你試圖從概念上將''內聯'到'Y'? – Mat