宏定义,函数,typedef辨析

宏函数跟函数的不同

宏定义跟函数的不同点,可以参考函数的构成,调用原理等维度进行。

函数特点:
1.编译期解析;2.可以有传入参数及类型检查;3.调用过程涉及参数压栈,寄存器状态保护等;4.执行完可以有返回值;

参考如上内容,不难发现宏函数跟函数的不同:
不同点:
1.宏函数本质是文本替换,发生在预处理阶段,随后再参与编译过程;
2.宏函数的没有参数检查的机制;
3.一般函数调用涉及的现场保护操作,宏函数都没有,因此执行效率更高;
4.一般函数调用可以有返回值的,而宏函数无返回值;

宏定义跟typedef的区别

先直观看一下使用宏跟typedef的表面区别

#defne MY_INT int
typedef YOUR_INT int;

观察一下就可以知道,除了关键字不同,还有就是define用到了#,且没有“:”,#include<…>大家都熟悉,也用到了#,没错,#表示预处理器支持的指令;
而typedef后面有“:”,即这是一条语句;
其实,你的int我的int完全不一样!

  1. 宏定义如前所述,用于复杂文本替换,由预处理器支持;而typedef是C/C++的一部分,用于对已有类型取一个别名,可以提高代码的可读可移植性;
  2. 在类型检查方面,typedef在编译器看来,跟原来数据类型一样,因此具备正常类型检查机制,int有的,MY_INT也有;
  3. typedef类型别名是一条条语句,而宏定义并不是语句(它没分号)
  • 24
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小凡下方了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值