Ответ 1
Это потому, что GUID является частным случаем UUID. Для получения информации о том, что означают все поля, вы можете посмотреть RFC 4122.
В rpc.h структура GUID объявляется следующим образом:
typedef struct _GUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data[8];
} GUID;
Я понимаю Data1, Data2 и Data3. Они определяют первый, второй и третий набор шестнадцатеричных цифр при записи GUID (XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX).
Я никогда не понимал, почему последние две группы были объединены в один и тот же массив байтов. Разве это не имело бы смысла (и было легче процитировать)?
typedef struct _GUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
WORD Data4;
BYTE Data5[6];
} GUID;
Кто-нибудь знает, почему это объявлено таким образом?
Это потому, что GUID является частным случаем UUID. Для получения информации о том, что означают все поля, вы можете посмотреть RFC 4122.
http://en.wikipedia.org/wiki/Globally_Unique_Identifier и http://www.opengroup.org/onlinepubs/9629399/apdxa.htm (Оригинальное представление DCE, вы можете увидеть группировку бит в таблице)