typedef
是用于从现有类型创建新类型的 C 和 C++ 语言标签。最好的地方是将它与具有以下示例的结构的 C 编程语言一起使用,或者使用它从现有的原始类型(短、长等)创建一个新的、更抽象的类型。
typedef struct {
int iValue;
int jValue;
} MyValues;
// declare a variable with this struct
MyValues aMyValuesStruct;
在将 typedef 引入 C 之前,为了将上述结构用作类型,您必须执行以下操作:
struct _MyValuesStruct {
int iValue;
int jValue;
};
// declare a variable with this struct
struct _MyValuesStruct aMyValuesStruct;
在 C++ 中,结构和类是创建新类型的类似结构,因此typedef
对于这些类型的变量没有那么有用。但是,如果您使用内置的原始类型来表示其他更抽象的类型,那么 typedef 语句可以帮助您以更抽象的方式指定类型。
这种使用typedef
使得为类型指定标签变得更加容易,因此当程序员阅读源代码时,他们可以理解特定变量代表什么。例如,如果您有一个颜色值unsigned short
变量typedef
适合unsigned short
.
还允许的是typedef
,它可以更容易地找到源中使用特定抽象类型的所有位置,并且更容易更改底层类型。例如,如果您的颜色值类型以字节开始,因此您typedef
用来创建抽象类型,例如typedef unsigned char ColorValue;
,然后您发现需要将其从 anunsigned char
更改unsigned short
为该类型的使用相当严格,这将是您需要进行更改的唯一地方。