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。