#define与typedef的区别

1.typedef就是类型定义,比如你给一个已经存在的类型(基本类型或者组合类型?)一个别名,
作用:1)简化复杂类型的声明,在常用的地方带上一大串类型名,显得太冗余,为了图方便,用个简单的名称代替:
typedef bool (*FuncPointer)(int ,double);

2)定义与平台无关的类型
对于以前的代码可能在不同的平台上运行,会存在一些差异,为了有更好的可操作性,在不同的平台只需修改小部分;
如:
typedef long double REAL;
在不支持long double 的平台上,可以改为
typedef double REAL;

2.在C语言中与struct一起使用,否则定义的时候就必须带上struct这个关键字

3.与#define的区别
1).执行时间不同
typedef发生在编译阶段,具有类型检查功能;#define 只是在预处理阶段,只进行简单的字符串替换,不进行任何检查;
2).作用域不同
#define不仅仅可以为类型取别名,还可以定义常量、变量、编译开关等;
typedef用来定义类型的别名以及与struct的配合使用;
3)对指针的操作不同
修饰指针时,作用不同;
详情见:http://blog.csdn.net/luoweifu/article/details/41630195

学习数据结构第4天。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值