1.在我的大学课本里,对typedef的定义是给已有的类型起个别名,或者定义新的类型。
比如下面:
typedef struct AF_ScriptClassRec_ const* AF_ScriptClass;
typedef struct AF_ScriptMetricsRec_
{
AF_ScriptClass clazz;
AF_ScalerRec scaler;
FT_Bool digits_have_same_width;
} AF_ScriptMetricsRec, *AF_ScriptMetrics;
上面定义了三种类型:
1>>AF_ScriptMetricsRec是结构体,是struct AF_ScriptMetricsRec_的简写.或者别名吧
如 struct AF_ScriptMetricsRec_ af 就等同于 AF_ScriptMetricsRec af
2>>AF_ScriptMetrics是结构体的指针
如 AF_ScriptMetrics paf = ⁡
3>>AF_ScriptClass也是一个结构体指针,不过它要求的是指向const类型的结构体变量,非const也可以。加这个const意在说明不能通过这个指针修改它所指向的变量.是不是const无所谓.
如 const AF_ScriptMetricsRec af;
AF_ScriptClass paf = ⁡
2.typedef 也可以定义函数指针
typedef void
(*AF_Script_ScaleMetricsFunc)( AF_ScriptMetrics metrics, AF_Scaler scaler );
AF_Script_ScaleMetricsFunc是指向返回值未void带两个参数的函数。其初始化时赋给一个匹配的函数名字就可以了。
3.typedef 也可以用在枚举上