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

时间:2012-05-28 19:28:27

标签: c++ c typedef

typedef中有三个项目是什么意思?

例如:

typedef CK_BYTE     CK_PTR       CK_BYTE_PTR;

我知道如果你只有typedef CK_BYTE CK_PTR;那么CK_BYTE就可以被称为CK_PTR

3 个答案:

答案 0 :(得分:14)

点击谷歌搜索表明CK_PTRpkcs11.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定义出现在同一个头文件中。

答案 1 :(得分:3)

它不是有效的语法,除非其中一个是宏(例如#define CK_PTR *,这是可怕的)。

答案 2 :(得分:3)

假设CK_PTR定义为*,您输入的CK_BYTE*CK_BYTE_PTR