Question

Dans rpc.h, la structure du GUID est déclarée comme suit:

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

Je comprends Data1, Data2 et Data3. Ils définissent les premier, deuxième et troisième ensembles de chiffres hexadécimaux lors de l’écriture d’un GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX).

Ce que je n'ai jamais compris, c'est pourquoi les 2 derniers groupes ont été déclarés ensemble dans le même tableau d'octets. Cela n’aurait-il pas été plus logique (et plus facile de coder)?

typedef struct _GUID 
{  
   DWORD Data1;  
   WORD Data2;  
   WORD Data3;  
   WORD Data4;  
   BYTE Data5[6]; 
} GUID;

Quelqu'un sait pourquoi c'est déclaré de cette façon?

Était-ce utile?

La solution

C'est parce qu'un GUID est un cas particulier d'un UUID . Pour plus d'informations sur la signification de tous les champs, consultez la RFC 4122 .

Autres conseils

http://en.wikipedia.org/wiki/Globally_Unique_Identifier et http://www.opengroup.org/onlinepubs/9629399/apdxa.htm (DCE's représentation originale, vous pouvez voir le regroupement des bits dans un tableau)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top