2

typedefに3つのアイテムがあるとはどういう意味ですか?

例えば:

typedef CK_BYTE     CK_PTR       CK_BYTE_PTR;

私はあなたがちょうど持っているならそれを知っていtypedef CK_BYTE CK_PTRます; そうすれCK_BYTEば、と呼ぶことができますCK_PTR

4

3 に答える 3

15

グーグルのビットは、それ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、同じヘッダーファイルで発生します。

于 2012-05-28T19:35:29.160 に答える
3

#define CK_PTR *それらの1つがマクロ(たとえば、恐ろしい)でない限り、これは有効な構文ではありません。

于 2012-05-28T19:30:22.887 に答える
3

CK_PTRをとして*typedefしているCK_BYTE*と仮定しますCK_BYTE_PTR

于 2012-05-28T19:30:49.057 に答える