rpc.h では、GUID 構造体は次のように宣言されています。
typedef struct _GUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data[8];
} GUID;
Data1、Data2、および Data3 を理解しています。これらは、GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX) を書き出すときに、1 番目、2 番目、および 3 番目の 16 進数のセットを定義します。
私が理解できなかったのは、最後の 2 つのグループが同じバイト配列で一緒に宣言された理由です。これはより理にかなっている (そして、コード化するのが簡単だった) と思いませんか?
typedef struct _GUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
WORD Data4;
BYTE Data5[6];
} GUID;
なぜこのように宣言されているか知っている人はいますか?