Ich verstehe, dass das align
Attribut eine few different Form der Verwendung hat. wobei gepolstert mit 2 zusätzlichen unerwünschten BytesVerwirrung in Bezug auf das 'align' Attribut
align(1)
private struct TGAHeader
{
ubyte idLenght;
ubyte hasColormap;
ubyte imageType;
ushort cmFirstEntry;
ushort cmLength;
ubyte cmSize;
ushort xOrigin;
ushort yOrigin;
ushort width;
ushort height;
ubyte pixelDepth;
ubyte imageDescriptor;
}
// TGAHeader.sizeof == 20
, die in der Struktur ergab:
In meinem ersten Versuch, ich benutze es wurde wie folgt.
Nach dem Wechsel es an:
private struct TGAHeader
{
align(1):
ubyte idLenght;
ubyte hasColormap;
ubyte imageType;
ushort cmFirstEntry;
ushort cmLength;
ubyte cmSize;
ushort xOrigin;
ushort yOrigin;
ushort width;
ushort height;
ubyte pixelDepth;
ubyte imageDescriptor;
}
// TGAHeader.sizeof == 18
bekam ich das erwartete 18 Bytes für die Header-Größe.
Also meine Zweifel ist: Was ist die tatsächliche Verwendung der ersten Form der align
Attribut, wenn es scheint nicht die Daten auszurichten, wie man erwarten würde?