一般用typedef来声明新的类型名
1、简单地用一个新的类型名代替原有的类型名:
typedef int Integer; //指定用Integer为新类型名,作用与int相同
//下面两个变量i和j的声明作用相同
int i,j;
Integer i,j;
又例如:
typedef int Count; //指定Count代表int
Count i,j; //用Count定义变量i和j,相当于 int i,j;
这样做的好处是,用typedef定义的新类型,可以直接一目了然是干什么的,比如看见Count一般我们认为是计数用;与此同时,当一个项目的代码量达到一定程度的时候,用typedef定义的类型,一旦需要改变量的类型会变得比较容易,比如原来是int型,后来由于需求变更,需要定义long型,就可以通过直接更改typedef定义的类型即可。
2、命名一个简单的类型名代替复杂的类型表示方法:
(1)命名一个新的类型名代替结构体类型:
//原来类型
struct {
int day;
int year;
}Date;
struct Date date; //定义结构体类型变量
//用typedef之后
typedef struct {
int day;
int year;
}Date;
Date date;//可以直接使用新类型来定义
(2)命名一个新的类型名代表数组类型:
typedef int Num[10]; //声明Num为整形数组
Num a; //定义a为整形数组名,它有10个元素。相当于 int a[10]
(3)命名一个新的类型名代表指针类型:
typedef char *String; //声明String为字符指针类型
String p,s[10]; //定义p为字符指针变量,s为字符指针数组
(4)命名一个新的类型名代表指向函数的指针类型:
typedef int (*Pointer)(); //声明Pointer为指向函数的指针类型,该函数返回整型值
Pointer p1,p2; //p1,p2为Pointer类型的指针变量
归纳起来,声明一个新的类型名的方法是:定义变量
- 先按定义变量的方法写出定义体(如 int i;)
- 将变量名换成新类型名(如 将i换成Count)
- 在最前面加typedef(如 typedef int Count)
- 然后可以用新类型名去定义变量
简单的说,就是按定义变量的方式,把变量名换上新类型名,并且在最前面加“typedef”,就声明了新类型名代表原来的类型。