Pregunta

En rpc.h, la estructura GUID se declara de la siguiente manera:

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

Entiendo Data1, Data2 y Data3. Definen el primer, segundo y tercer conjunto de dígitos hexadecimales al escribir un GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX).

Lo que nunca entendí fue por qué los últimos 2 grupos se declararon juntos en la misma matriz de bytes. ¿No habría tenido más sentido (y hubiera sido más fácil codificar)?

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

¿Alguien sabe por qué se declara de esta manera?

¿Fue útil?

Solución

Es porque un GUID es un caso especial de un UUID . Para obtener información sobre el significado de todos los campos, puede consultar RFC 4122 .

Otros consejos

http://en.wikipedia.org/wiki/Globally_Unique_Identifier y http://www.opengroup.org/onlinepubs/9629399/apdxa.htm (DCE's representación original, puede ver la agrupación de bits allí en una tabla)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top