Domanda

In rpc.h, la struttura GUID è dichiarata come segue:

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

Comprendo Data1, Data2 e Data3. Definiscono la prima, la seconda e la terza serie di cifre esadecimali quando si scrive un GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX).

Quello che non ho mai capito è stato il motivo per cui gli ultimi 2 gruppi sono stati dichiarati insieme nello stesso array di byte. Non avrebbe avuto più senso (e sarebbe stato più facile codificarlo)?

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

Qualcuno sa perché è stato dichiarato in questo modo?

È stato utile?

Soluzione

È perché un GUID è un caso particolare di un UUID . Per informazioni sul significato di tutti i campi, è possibile consultare RFC 4122 .

Altri suggerimenti

http://en.wikipedia.org/wiki/Globally_Unique_Identifier e http://www.opengroup.org/onlinepubs/9629399/apdxa.htm (DCE's rappresentazione originale, puoi vedere il raggruppamento di bit in una tabella)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top