typedef——用法总结

typedef工具是一个高级数据特性,利用typedef可以为某一类型自定义名称。它与#define类似,但是也有不同。

在《C Primer Plus》中是这样写到的:

1.与#define不同,typedef创建的符号名至受限于类型,不能用于值。

2.typedef由编译器解释,不是预处理器。

3.在其受限范围内,typedef比#define更加灵活。

它们俩的功能会有重合的地方,例如:

typedef unsigned char byte

#define byte unsigned char

但typedef也有#define没有的功能,例如:

typedef char * STRING
STRING name,sign;
char *name,*sign;
#define STRING char *
STRING name,sign;
char *name,sign;

这样就会导致定义出错。

typedef还可以用于结构。

typedef struct complex{
float real;
float imag;
}COMPLEX;
typedef struct{
double x;
double y;
}rect;

rect r1={3.0,6.0};
rect r2;

等于

struct {
double x;
double y;
}r1={3.0,6.0};

struct {
double x;
double y;
}r2;
 

typedef的使用大致有两个原因:

1.为经常出现的类型创建一个方便、易识别的类型名;

2.typedef常用于给复杂的类型命名。

我在课堂上学到类似知识时,并没有在实际中常用。但是最近遇到的很多代码几乎都会出现它,在深入了解和使用之后,发现确实很便利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值