typedef和结构体学习札记
时间:2010-09-18 来源:szufhc2006
/* LwIP邮箱结构 */
typedef struct stLwIPMBox {
struct stLwIPMBox *pstNext; //指向结构体自身的指针
HANDLER hMBox;
void *pstMsgs[MBOX_SIZE]; //指向任意数据类型的指针数组
}ST_LWIP_MBOX, *PST_LWIP_MBOX;
(HANDLER是由typedef自定义的数据类型)
在这条typedef类型定义语句中,包含了:
类型定义关键字:typedef;
结构体声明关键字:struct。
该语句定义了两种数据类型:
ST_LWIP_MBOX——结构体;
PST_LWIP_MBOX——结构(体)指针。
ST_LWIP_MBOX 类型定义的变量皆为为stLwIPMBox类型结构体;
PST_LWIP_MBOX 类型定义的变量皆为指向stLwIPMBox类型结构体的指针,即和 “struct stLwIPMBox *pstNext; //指向结构体自身的指针” 一样的性质。
对于PST_LWIP_MBOX结构指针类型的定义,在上面的语句中,意思表达得不明显,有些令人费解。其实,要是把上面的语句拆分成如下的两条语句,意思就明显了,但是为了代码的简洁,一般采用前面的编程规范。
/* LwIP邮箱结构 */
typedef struct stLwIPMBox {
struct stLwIPMBox *pstNext; //指向结构体自身的指针
HANDLER hMBox;
void *pstMsgs[MBOX_SIZE]; //指向任意数据类型的指针数组
}ST_LWIP_MBOX;
/* LwIP邮箱结构 */
typedef struct stLwIPMBox {
struct stLwIPMBox *pstNext; //指向结构体自身的指针
HANDLER hMBox;
void *pstMsgs[MBOX_SIZE]; //指向任意数据类型的指针数组
}* PST_LWIP_MBOX;
相关阅读 更多 +