typedef中的三个术语是什么意思?

m3h*_*hes 1 c c++ typedef

当typedef中有三个项目时,它意味着什么?

例如:

typedef CK_BYTE     CK_PTR       CK_BYTE_PTR;
Run Code Online (Sandbox Code Playgroud)

我知道,如果你只是typedef CK_BYTE CK_PTR; 然后CK_BYTE就可以被称为CK_PTR.

Kei*_*son 14

一点谷歌搜索表明这CK_PTR是一个定义的宏pkcs11.h.请点击该链接查看这些定义的文档.

它通常定义为:

#define CK_PTR *
Run Code Online (Sandbox Code Playgroud)

但在一些古老的系统上,它可能被定义为

#define CK_PTR far *
Run Code Online (Sandbox Code Playgroud)

where far是一个主要是过时的特定于系统的关键字,它指定某种非标准类型的指针.

所以这:

typedef CK_BYTE CK_PTR CK_BYTE_PTR;
Run Code Online (Sandbox Code Playgroud)

相当于这个(更清晰的)代码:

typedef CK_BYTE *CK_BYTE_PTR;
Run Code Online (Sandbox Code Playgroud)

它定义CK_BYTE_PTR为指向a的指针CK_BYTE.

引用的定义CK_BYTE_PTR发生在同一个头文件中.