15

rpc.h では、GUID 構造体は次のように宣言されています。

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

Data1、Data2、および Data3 を理解しています。これらは、GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX) を書き出すときに、1 番目、2 番目、および 3 番目の 16 進数のセットを定義します。

私が理解できなかったのは、最後の 2 つのグループが同じバイト配列で一緒に宣言された理由です。これはより理にかなっている (そして、コード化するのが簡単だった) と思いませんか?

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

なぜこのように宣言されているか知っている人はいますか?

4

2 に答える 2

12

GUID はUUIDの特殊なケースであるためです。すべてのフィールドの意味については、RFC 4122を参照してください。

于 2008-11-10T05:26:28.767 に答える
3

http://en.wikipedia.org/wiki/Globally_Unique_Identifierおよびhttp://www.opengroup.org/onlinepubs/9629399/apdxa.htm (DCE の元の表現。ビットのグループ化は表で確認できます)

于 2008-11-09T21:49:22.780 に答える