typedef 与 define的区别

typedef与define有两个关键性的区别,这会带给我们一些烦恼。但其根本区别就是typedef是个“封装”好的类型,就是在声明类型之后不能再往里面添加其他声明。区别如下:

1)添加其他

#define example int

则:
unsigned example a;
完全没有问题
typedef example int
但会报错

2)连续声明

#define pstr int* 
   typedef int* pstr2

假如我们连续声明多个变量:

pstr a,b;
   pstr2 c,d;

则我们会发现:a,c,d为指向int 的指针而b则是一个int类型的变量,这与我们的本意相悖。
其实,我们将pstr拆开就会明白这是为啥:
对于pstr:

 Int * a,b;

这就是原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值