typedef定义新的类型标识符

来源:互联网 发布:网络订餐食品安全现状 编辑:程序博客网 时间:2024/05/01 20:31

C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义新的类型说明符,也就是允许由用户为数据类型取“别名”。类型定义符typedef即可用来完成此功能。例如,有整型量a,b,其说明如下:

int a,b;

其中int是整型变量的类型说明符,int的完整写法为integer,为了增加程序的可读性,可以把整型说明符用typedef定义为:typedef int INTEGER,这样以后可以用INTEGER来代替int作为整型变量的类型说明了。例如:INTEGER a,b;等效于int a,b;用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读性。

typedef定义的一般形式为:typedef 原类型名 新类型名

其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。在有事也可以用宏定义来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译时完成的,后者更为灵活方便。

定义一个新的类型标识符的方法如下:

(1)、先按变量定义的方法写出定义(如:float x;)。

(2)、将变量名换成新的类型名(如:REAL)。

(3)、在最前面加上typedef(如:typedef float REAL)。

(4)、用新的类型标识符定义变量(如:REAL x,y,z;)。

说明:

(1)、typedef可以定义新的类型名,但不能用来定义变量。

(2)、typedef只能对已经存在的类型增加一个新的类型标识符,但不能创建新的类型。

(3)、typedef与#define有相似之处,但二者实质不同。#define是在编译预处理时处理的,它只能做简单的字符串替换。而typedef是在编译时处理的。实际上并不是做简单的字符串替换。

在文件操作中用到的FILE就是一个已经被说明的结构,其说明如下:

typedef struct

{

short level;

unsigned flags;

char fd;

unsigned char hold;

short bsize;

unsigned char *buffer;

unsigned char *curp;

unsigned istemp;

short token;

}FILE;

这个结构说明已经被包含在stdio.h中,用户只要直接用FILE定义文件指针变量就可以了。事实上,引入类型说明的目的并非是为了方便,而是为了便于程序的移植。

0 0
原创粉丝点击