说明:
C 语言提供了 typedef 关键字,咱们可以使用它来为类型取一个新的名字
使用方法为:
typedef 原类型 新别名;
字段 | 说明 |
---|---|
原类型 | 需要被定义的类型,如:char*、struct等 |
新别名 | 代替原类型出现的新名字 |
使用方式
- 利用typedef定义一个通用的无符号整形声明
在不是用typedef前:
unsigned int age = 10;
使用typedef后:
//1.利用typedef来声音一个无符号的int类型
typedef unsigned int xuint;
void test_xunit();
void test_xunit() {
//使用的时候就可以直接使用
xuint age = 10;
printf("age=%d", age);
}
- 定义一个指针类型:
不使用typedef前:
本想连续声明两个char*类型,可能得到的只有一个char*类型
//这样声明,实际只是p1为char* 类型,p2为char类型
char* p1, p2;
p1 = "你好啊1";
p2 = "2";
printf("%s,%c \n", p1, p2);
使用typedef后:
typedef char *PCHAR;
void test_char_p() {
//这样子声明,p3和p4就都是char*类型了
PCHAR p3, p4;
p3 = "你好啊3";
p4 = "你好啊4";
printf("%s,%s", p3, p4);
}
- 定义一个结构体声明
比如有一个结构体:
struct Student {
int age;
char *name;
};
在不使用typedef前,声明的时候都需要 struct Student,就像这样
void testStudent() {
//声明的时候都需要 struct Student
struct Student student;
student.age = 10;
}
带了typedef后,就只需要使用别名了:
typedef struct Student Student_t;
void testStudent() {
// 只需要使用别名
Student_t student;
student.age = 10;
}
typedef也可以直接用在结构体的声明,在声明的时候就用typedef,效果等同于上面一种声明方式,像这样声明结构体即可:
typedef struct Student {
int age;
char *name;
}Student_t;
总结
使用typedef的好处:
- 可以减少书写重复的代码
- 方便修改(在多处都使用到别名的时候,想要修改其声明的时候仅需要修改typedef的地方,而不需要每一处都去修改)