1.基本使用
1> typedef 在基本数据类型中的使用
typedef int MyInt; // 相当于给 int 起了一个别名
typedef MyInt MyInt2; // 相当于给 MyInt 起了一个别名
MyInt a = 10; // MyInt相当于 int
MyInt2 b = 12; // MyInt2相当于 int
2> typedef 和指针在一起时的使用
char *name = "jack";
typedef char * string;//相当于给(char *)起了一个别名叫string
string name1 = "jame";
3> typedef和结构体在一起时的使用
①struct Date {int year; int month; int day};
typedef struct Date MyDate;// 相当于给struct Date起了一个别名
②typedef truct Date {int year; int month; int day} MyDate;//另一种使用方式
③typedef truct {int year; int month; int day} MyDate;//另一种使用方式
4> typedef和枚举在一起时的使用
enum Sex {sexman,sexwoman,unknow};
typedef enum Sex {sexMan,sexwoMan,unKnow} Mysex;//相当于给枚举类型起了 一个别名
Mysex s = sexMan;//定义变量
5> typedef和函数指针在一起时的使用
int sum(int a, int b)
{
return a + b;
}//首先定义一个函数
int (*p)(int, int);//定义一个指向函数的指针类型
typedef int (*MyPoint)(int, int);//给指向函数的指针类型起了一个别名叫MyPoint
MyPoint p = sum;
6> typedef和结构体指针在一起时的使用
struct Date {int year; int month; int day};//定义了一个结构体类型
struct Date d = {1990, 10, 10};//定义结构体变量
struct Date *p = &d;//定义了一个指向结构体变量的指针
typedef struct Date *DatePoint;
DatePoint p2 = &d;
typedef struct Date {int year; int month; int day} * DstePoint;//另一种定义方式
7>总结
①作用:给已经存在的类型起一个新的名称
②使用场合:
1)基本数据类型
2)结构体
3)指针
4)枚举
5)指向函数的指针
2.使用注意
1> typedef和宏定义同时使用,要注意宏定义是文本替换
#denfine string2 char *
type char * string;
string s1,s2; //s1、s2都是char *类型
string2 s3,s4; //s3是char *类型,s4是char类型;因为宏是文本替换