C++ typedef中的三个术语是什么意思?
当typedef中有三个项目时,它意味着什么 例如:C++ typedef中的三个术语是什么意思?,c++,c,typedef,C++,C,Typedef,当typedef中有三个项目时,它意味着什么 例如: typedef CK_BYTE CK_PTR CK_BYTE_PTR; 我知道如果你只有typedef CK_BYTE CK_PTR;然后CK_BYTE就可以被称为CK_PTR它不是有效的语法,除非其中一个是宏(例如#define CK_PTR*,这很可怕)。按照该链接查看这些定义的文档 它通常被定义为: #define CK_PTR * 但在一些古代系统中,它可能被定义为 #define CK_PTR far *
typedef CK_BYTE CK_PTR CK_BYTE_PTR;
我知道如果你只有
typedef CK_BYTE CK_PTR
;然后CK_BYTE
就可以被称为CK_PTR
它不是有效的语法,除非其中一个是宏(例如#define CK_PTR*
,这很可怕)。按照该链接查看这些定义的文档
它通常被定义为:
#define CK_PTR *
但在一些古代系统中,它可能被定义为
#define CK_PTR far *
其中,far
是一个过时的系统特定关键字,用于指定某种非标准类型的指针
因此:
typedef CK_BYTE CK_PTR CK_BYTE_PTR;
相当于此(更清晰)代码:
它将CK\u BYTE\u PTR
定义为指向CK\u BYTE
的指针
引用的
CK\u BYTE\u PTR
的定义出现在同一头文件中。Post这两个术语是如何定义的。CK\u BYTE
和CK\u PTR
可能是typedefs或macros。它们是如何定义的?CK\u PTR
是否有可能扩展到*
?(如果是这样的话,它主要是用来混淆的。)它并不像看上去那么可怕;它的目的是在古老的x86系统上隐藏far
关键字。搞定了,谢谢!在另一个文件中有这样的定义,你知道为什么有人会这样做吗?@m3hughes:Keith的回答似乎涵盖了这一点(+1!)。谢谢,这帮了大忙!我会投你一票,但我的名声还不够好。
typedef CK_BYTE *CK_BYTE_PTR;