函数形参---内联函数

1.形参带默认值的函数
1.给默认值,需要从右向左给,压栈的时候从右向左压。

int sum(int a = 10,int b)
//这样是错误的

2.给默认值调用效率高
因为调用时给值,h汇编会直接压栈,如果是给变量值,还需要多一条move指令,需要从内存中取值到寄存器,再压栈。
3.定义可以给形参默认值,声明也可以
4.不管是声明给默认值,还是定义出给,形参默认值只能给一次

//这样是可以的
int sum(int a,int b=10);
int sum(int a = 10,int b);
//这样是错误的
int sum(int a = 10,int b);
int sum(int a,int b=10);
//这样也是错误的,b给了2次值
int sum(int a = 10,int b = 10);
int sum(int a,int b=10);

2.内联函数

1.内联函数会直接在编译期,调用点展开,减少调用开销
2.但是不是所有的内联函数都会被编译器处理为内联函数,最终会有编译器决定是否处理为内联函数。
3.内联函数不生成相应的函数符号
4.inline只有在release版本起作用,debug是不起作用的

与宏的区别:
1.宏在预编译时期展开,内联函数在编译时期展开
2.内联由于经历编译期,所以有类型,参数检查,宏是没有的
3.宏只是简单的文本替换,内联函数可以镶嵌在代码里,会增加内存开销
4.内联是函数,宏不是

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值