用typedef声明类型

2015/05/21 C和C++基础

除了用以上方法声明结构体、共用体、枚举等类型外,还可以用typedef声明一个新的类型名来代替已 有的类型名。如:

typedef int INTEGER;  //指定用标识符INTEGER代表int类型
typedef float REAL;   //指定用REAL代表float类型

//下两行等价:
inti,j; float a,b;
INTEGER i,j; REAL a,b;

如果在一个程序中,整型变量是专门用来计数的,可以用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 birthday;
DATE *p;         //p为指向此结构体类型数据的指针

进一步的:

typedef int NUM[100];      //声明NUM为整型数组类型,包含100个元素
NUM n;                     //定义n为包含100个整型元素的数组
typedef char* STRING;      //声明STRING为字符指针类型
STRING p,s[10];            //p为字符指针变量,s为指针数组(有10个元素)
typedef int (*POINTER)()   //声明POINTER为指向函数的指针类型,函数返回整型值
POINTER p1,p2;             //p1,p2为POINTER类型的指针变量

总结:

1.typedef可以声明各种类型名,但不能用来定义变量。用typedef可以声明数组类型、字符串类型,使用比较方便。

2.用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。

3.当在不同源文件中用到同一类型数据(尤其是像数组、指针、结构体、共用体等类型数据时常用typedef声明一些数据类型,把它们单独放在一个头文件中,然后在需要用到它们的文件中用#include命令把它们包含进来,以提高编程效率。

4.使用typedef有利于程序的通用与移植。有时程序会依赖于硬件特性,用typedef便于移植。

Search

    Post Directory