typedef声明数据类型的作用相当于给一个数据类型取一个别名,如typedfintiStatus;iStatus只是int的一个别名,实质还是int型数据。typedefstruct{}也就相当于给结构体声明了一个别名,别名前的*表示它该结构体的指针类型。用该别名声明的变量都是这个结构体的一个指针变量。
这样做的有点是:
1、书写方便美观
2、在作为函数参数时,为了得到在函数中被修改过的值,对于这种直接声明为指针类型的数据类型可以很方便的使用&(引用),这样以达到获取被修改的数据的目的。尤其是在很多被宏和typedef所声明的变量作为函数参数时,十分有用:当有些别名的实质数据类型都一样时,你使用(像int*声明的)指针时并不与用另外一个别名声明的形参匹配,而用别名声明的却能强制转换,当然也不是所有都能。