给变量类型起一个别名。 typedefint MyInt; typedef给结构体或枚举定义别名最为方便 //给结构体设置一个别名 //方法1: struct Student { int age; };
typedef structStudent MyStu;
//方法2: typedef struct { int age; char *name; }MyStu2;
int main() { MyStustu1 = {20}; MyStu2stu2 = {30, "tom"}; return 0; }
第一种方法比较灵活,可以保留以前的定义变量的方式 struct Student stu3; 第二种就不行了。
枚举也是同理 typedef enum Sex { Man, Woman }MySex;
typedef enum{ man, woman }MySex2;
指向函数的指针也可以用typedef 普通的函数指针 int (*p)(int,int) = sum; int value = p(10,20); 这样写很麻烦。这时候可以使用typedef定义一个指向函数的指针的类型。 typedef int(*MyPoint)(int, int);//定义指向函数的指针的类型智能这么写。 然后就可以这样使用 MyPointp = sum; MyPointp2 = minus; p(10,20);结果是30 p2(20,10);结果是10
定义指向结构体的指针的类型 typedef struct { int age; char *name; }MyStu2; //指向结构体的指针的新类型定义 typedef MyStu2 * StudentPoint;
//main函数中调用 MyStu2 stu = {10,"Tom"}; StudentPoint stuP = &stu; printf("age = %d ,name = %s\n",stuP->age, stuP ->name);
也可以这么写 typedef structStudent2 { int age; char *name; }*StudentPoint2;
|