您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++ typedef 声明新类型

时间:01-10来源:作者:点击数:

在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 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. 先按定义变量的方法写出定义语句(如int i;)。
  2. 将变量名换成新类型名(如将i换成COUNT)。
  3. 在最前面加typedef(如typedef int COUNT)。
  4. 然后可以用新类型名去定义变量。

再以声明上述的数组类型为例来说明:

  1. 先按定义数组形式书写: int n[100];
  2. 将变量名n换成自己指定的类型名:int NUM[100];
  3. 在前面加上typedef,得到 typedef int NUM[100];
  4. 用来定义变量: NUM n;(n是包含100个整型元素的数组)。

习惯上常把用typedef声明的类型名用大写字母表示,以便与系统提供的标准类型标识符相区别。

关于typedef的几点说明:

  1. typedef可以声明各种类型名,但不能用来定义变量。用typedef可以声明数组类型、字符串类型,使用比较方便。
  2. 用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。
  3. 当在不同源文件中用到同一类型数据(尤其是像数组、指针、结构体、共用体等类型数据)时,常用typedef声明一些数据类型,把它们单独放在一个头文件中,然后在需要用到它们的文件中用#include命令把它们包含进来,以提高编程效率。
  4. 使用typedef有利于程序的通用与移植。有时程序会依赖于硬件特性,用typedef便于移植。
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门