Почему структура GUID объявлена такой, какая она есть?

StackOverflow https://stackoverflow.com/questions/276524

  •  07-07-2019
  •  | 
  •  

Вопрос

В rpc.h структура GUID объявлена следующим образом:

typedef struct _GUID 
{  
   DWORD Data1;  
   WORD Data2;  
   WORD Data3;  
   BYTE Data[8];
} GUID;

Я понимаю Data1, Data2 и Data3.Они определяют первый, второй и третий наборы шестнадцатеричных цифр при записи GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX).

Чего я никогда не понимал, так это почему последние 2 группы были объявлены вместе в одном и том же массиве байтов.Разве это не имело бы больше смысла (и было бы проще кодировать против)?

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, вы можете увидеть группировку биты там, в таблице)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top