Pergunta

Em rpc.h, a estrutura GUID é declarado o seguinte:

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

Eu entendo dados1, dados2, e Data3. Eles definem o primeiro segundo e terceiro conjuntos de dígitos hexadecimais, ao escrever um GUID (XXXXXXXX-XXXXXXXX-XXXX-XXXXXXXX).

O que eu nunca entendi foi por isso que os últimos 2 grupos foram declarados juntos na mesma matriz de bytes. Não seria este ter feito mais sentido (e foi mais fácil para código contra)?

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

Alguém sabe por que ela é declarada desta maneira?

Foi útil?

Solução

É porque um GUID é um caso especial de um UUID . Para obter informações sobre o que todos os campos dizer, você pode olhar para RFC 4122 .

Outras dicas

http://en.wikipedia.org/wiki/Globally_Unique_Identifier e http://www.opengroup.org/onlinepubs/9629399/apdxa.htm (DCE de representação original, você pode ver o agrupamento de pedaços lá em uma mesa)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top