在C++中,除了可以声明结构体、共用体、枚举等类型外,还可以用typedef声明一个新的类型名来代替已有的类型如:
typedef int INTEGER; //指定用标识符INTEGER代表int类型
typedef float REAL; //指定用REAL代表float类型
这样,以下两行等价:
int i,j; float a,b;
INTEGER i,j; REAL a,b;
这样可以使熟悉FORTRAN的人能用INTEGER和REAL定义变量,以适应他们的习惯。
如果在一个程序中,整型变量是专门用来计数的,可以用COUNT来作为整型类型名:
typedef int COUNT; //指定用COUNT代表int型
COUNT i,j; //将变量i,j定义为COUNT类型
即int类型在程序中将变量i, j定义为COUNT类型,可以使人更一目了然地知道它们是用于计数的。
也可以声明结构体类型:
typedef struct //注意在struct之前用了关键字typedef,表示是声明新名
{
int month; int day; int year;
}DATE; //注意DATE是新类型名,而不是结构体变量名
所声明的新类型名DATE代表上面指定的一个结构体类型。这样就可以用DATE定义变量:
DATE birthday; DATE *p; //p为指向此结构体类型数据的指针
还可以进一步:
归纳起来,声明一个新的类型名的方法是:
再以声明上述的数组类型为例来说明:
习惯上常把用typedef声明的类型名用大写字母表示,以便与系统提供的标准类型标识符相区别。
关于typedef的几点说明: