typedef和#define

                                                          typedef 和#define

      #define 是预编译指令,在预编译时进行一个简单的变换,而不作正确性的检查。不关含义是否正确都会照样代入,只有在编译已被打开的源程序时才会发现并报错。例如:                        

                 #define PI 3.1416926  //当我们在程序中使用 area = PI*r*r 。会在编译时替换为:3.1415926*r*r 。

       而如果我们误将3.1415926输入成:3.1415g26在预编译时不会出错。只有在打开后才会发现这个错误。

       而与此相反。typedef是在编译时处理。在自己的作用域内给一个已存在的类型一个别名。但是很明显这个是不能在函数定义中使用。相当于引入了一个助记符。

       当然由于这两者的差别所以也会导至在使用时会存在,例如:

               typedef int* pint;

               #define dint int*;

       pint 为一种指针类型。当使用 const pint p 便把指针锁住。故指针 p 不可更改,而 p 指向内容是可改变的。

       dint 。当使用 const pint p 便把指针锁住。待价于const int* p。故 p 可更改而 p 指向内容可改变。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值