||
在C++中,有时因为编程习惯的需要,有时为了程序的可移植性,需要用typedef声明一个新的类型名来代替已有的类型,如:
typedef int INTEGER; //指定用标识符INTEGER代表int类型 等价于:nt i,j; float a,b;
typedef float REAL; //指定用REAL代表float类型 等价于: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类型,可以使人更一目了然地知道它们是用于计数的。
也可以声明结构体类型:
typedefstruct//注意在struct之前用了关键字typedef,表示是声明新名
{
int month;int day;int year;
}DATE;//注意DATE是新类型名,而不是结构体变量名
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类型的指针变量
先按定义变量的方法写出定义语句(如int i;)。
将变量名换成新类型名(如将i换成COUNT)。
在最前面加typedef(如typedef int COUNT)。
然后可以用新类型名去定义变量。
先按定义数组形式书写: int n[100];
将变量名n换成自己指定的类型名:int NUM[100];
在前面加上typedef,得到 typedef int NUM[100];
用来定义变量: NUM n;(n是包含100个整型元素的数组)。
typedef可以声明各种类型名,但不能用来定义变量。用typedef可以声明数组类型、字符串类型,使用比较方便。
用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。
当在不同源文件中用到同一类型数据(尤其是像数组、指针、结构体、共用体等类型数据)时,常用typedef声明一些数据类型,把它们单独放在一个头文件中,然后在需要用到它们的文件中用#include命令把它们包含进来,以提高编程效率。
使用typedef有利于程序的通用与移植。有时程序会依赖于硬件特性,用typedef便于移植。
注:参考了网上的文章。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-31 09:54
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社