【C++】宏定义函数、内敛函数、static

pass
摘要由CSDN通过智能技术生成

宏定义函数的优缺点

函数调用会带来额外的开销,它需要开辟一片栈空间,记录返回地址,将形参压栈,从函数返回还要释放堆栈,这种开销不仅会降低代码效率,而且代码量也会大大增加。
使用宏定义则在代码规模和速度方面都比函数更胜一筹,其次,函数的参数必须被声明为一种特定的类型,所以它只能在类型合适的表达式上使用,我们如果要比较两个浮点型的大小,就不得不再写一个专门针对浮点型的比较函数。(宏定义不检查类型,即是有点也是缺点: 宏不能访问对象的私有成员、 宏的定义很容易产生二意性。)

内联函数和函数模板

C++模板函数可以解决类型单一,实现泛型编程;内敛函数可以内敛函数一般规模较小,程序再调用这些成员函数时,是把函数代码嵌入程序的调用点(内敛函数在源文件中不是调用而是按原样展开),这样可以大大减少调用成员函数的时间。事实上我们可以用内联函数完全取代预处理宏

// [1] 宏,类型不用声明 优点:类似于模板  可以int、double
#define getMax(a, b) (a > b ? a : b)

// [2] 函数 声明为int, 只能比较(11, 13)  不能比较(3.14, 6.18)
int f_getMax(int a, int b) {
    return a > b ? a : b; }

// [3] C++ 模板函数, 有类型推导
template <typename T
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值