- 用来定义类型的;用来定义别名的;有作用域限制;
- typedef int MyInt;意思就是给int类型起了一个别名MyInt;
- typedef char * String;String name = “jack”;name 就是指针类型;
- 给指针类型char *起一个新的类型名称String
- 给结构体起别名;typedef struct Student MyStu;也可以写成:
- typedef struct Student{int age;}myStu;
- 也可以是:typedef struct {int age;}myStu;在里面Student的作用很小;好处是省略了名称;
- 给枚举类型定义别名;typedef enum Sex{Man,Woman}MySex;
- int (*p) (int,int) = sum;
- int(*p)(int,int ) = minius;对指向函数的指针定义别名;
- typedef int(*MyPoint)(int,int);这是类型;
- MyPoint p = sum;其中p是变量;
- typedef struct Person * PersonPoint;
- struct Person p = {20};
- PersonPoint p2 =&p;
- typedef struct Person{int age;}* PersonPoint;
- typedef给存在的类型起一个名称;使用场合:基本数据类型;指针;结构体;枚举;指向函数的指针;
- .
typedef 注意点:宏定义和include等预处理指令不需要分号;
- 使用宏定义起一个别名;#define Integer int把代码中的Integer换成int;
- #define String2 char *这句下面对应的结果是:
- String2 s3,s4;相当于char *s3,s4;也相当于char *s3,char s4;
- 但是以下这种写法是不一样,要区分;
- typedef char * String;
- String s1,s2;相当于s1 =“jack”;s2=“rose”;既是char *s1;char *s2;