typedef说明

878阅读 0评论2011-12-29 桔色花朵
分类:

不论是在C语言中,还是在C++语言中,都可以使用typedef来定义一个新数据类型名,其基本语法为:

typedef 已有数据类型名 新数据类型名;

使用这条语句,并没有创建一种新的数据类型,而是将已有的数据类型换了个名称而已,例如:

typedef int INTEGER;

并没有创建一种新的数据类型:INTEGER,实际上INTEGER就是int型数据类型,只不过给int数据类型多取了个名字INTEGER而已。

既然这样,或许你会认为:这不是多此一举吗?其实不是的,存在就有它存在的理由。

 

我认为使用typedef有3个优点:

 

1.     简化程序源代码的书写,这是它最基本的用处:

例如定义了一个结构体变量:

struct std

{

  int num;

  char[10] name;

  int age;

};

在声明一个此结构体变量时,可以直接在定义时声明,即

struct std

{

  int num;

  char[10] name;

  int age;

}student1,student2;

 

也可以使用以下语句来声明:

struct std student1,student2;

 

但是如果我用typedef来换个名字:

typedef struct std

{

  int num;

  char[10] name;

  int age;

}STUDENT;

或typedef struct std STUDENT;

 

那么在声明此结构体类型变量时,就可以写成:

STUDENT student1,student2;

同理,共用体,数组等都可以用此方法简化程序代码。C语言的特点就是简洁。

 

2.     使变量意义更明显,这是使用它的技巧:

 

例如我用以下语句:

int x,y;

 

来表示一个矩形的长和宽,很明显x,y的意义不明显,做了注释也不好查找。

如果我用typedef语句来这样定义:

typdef int LENGTH, WIDTH;

 

在声明变量时,使用

LENGTH x;

WIDTH y;

 

这样x,y的意义就很明显了。

当然你也可以通过改变变量名来实现,

int length,width;

 

但是用typedef更方便和通用。C语言中的文件数据类型FILE就是一个例子。

这在C++语言中表现尤为明显,C++中有很多数据类型名,其实它的本质还是已经学过的那些数据类型。

3.或许你使用其他高级程序设计语言更熟练,你还不适应C语言的数据类型名,那么你可以使用typedef语句来将C语言中的数据类型名换成你熟悉的名称,这样你就会更适应。

 

例如:VB中整型变量是integer,而C语言中是int,那么你可以这样:

   typedef int integer;

 

 

下面是使用typedef定义常见数据类型的例子:

 

typedef int NUM[100];          /*定义NUM为含有100个元素的整型数组*/

NUM n;                         /*定义n为NUM型数组*/

 

typedef char *STRING;          /*定义STRING为指向字符串首地址的指针*/

STRING str;                    /*定义str为STRING型指针*/

 

typedef int MAX();             /*定义MAX为返回整型值的函数*/ 

 

由以上例子,可以看出要使用typedef来定义新类型名:

 

先写出原来的定义语句:如int num[100];

再将变量名换成新类型名:int NUM[100];

最后在之前加上typedef:typedef int NUM[100];

上一篇:SGI STL笔记(Concept的使用)
下一篇:UBUNTU 10.04 搭建android开发环境