typedefに3つのアイテムがあるとはどういう意味ですか?
例えば:
typedef CK_BYTE CK_PTR CK_BYTE_PTR;
私はあなたがちょうど持っているならそれを知っていtypedef CK_BYTE CK_PTR
ます; そうすれCK_BYTE
ば、と呼ぶことができますCK_PTR
。
グーグルのビットは、それCK_PTR
がで定義されたマクロであることを示していpkcs11.h
ます。これらの定義のドキュメントを参照するには、そのリンクをたどってください。
通常、次のように定義されます。
#define CK_PTR *
しかし、いくつかの古代のシステムでは、それは次のように定義されるかもしれません
#define CK_PTR far *
ここで、far
は、特定の非標準の種類のポインタを指定する、ほとんど廃止されたシステム固有のキーワードです。
したがって、この:
typedef CK_BYTE CK_PTR CK_BYTE_PTR;
この(はるかに明確な)コードと同等です:
typedef CK_BYTE *CK_BYTE_PTR;
CK_BYTE_PTR
これは、へのポインタとして定義されていますCK_BYTE
。
の引用符で囲まれた定義はCK_BYTE_PTR
、同じヘッダーファイルで発生します。
#define CK_PTR *
それらの1つがマクロ(たとえば、恐ろしい)でない限り、これは有効な構文ではありません。
CK_PTR
をとして*
typedefしているCK_BYTE*
と仮定しますCK_BYTE_PTR
。