带默认值函数 内敛函数 函数重载

  1 带默认值参数的函数: 首先,默认值参数的传递是自右向左,默认值参数并不影响压栈指令的生成(push指令); 若默认值参数是立即数,则是否带默认值参数的效率无差别,带默认值参数的函数压栈的时候永远压的是立即数; 若实参传的是变量,首先CPU要从内存中获取变量,存在寄存器(eax)中,在从寄存器中对数据进行处理操作。比带默认值的参数的效率慢。



2 inline 函数

因为函数的调用开销(各种压栈,出栈过程),在栈帧开辟及回退的过程。作用域:在本文件可见(文件生存周期)

inline 在使用时不产生符号

static 在使用时产生函数符号,链接时产生global的符号(本地文件符号local)

inline 在另一文件中编写,无法访问到函数符号,导致符号解析出错,链接失败。所以inline函数不能分文件写。问题在编译阶段出现,在吧函数代码展开之后。最终,inline只是对编译器的建议,最终是否使用由编译器决定。在release的开发版本之下,inline是可调式的(方便调试)。debug版本下,inline不起作用。


3函数重载

不同环境:gcc环境下,产生的函数符号由函数名进行实现

              g++环境下,函数符号由函数名+参数列表共同构成

函数重载:函数名相同,参数列表不同,不能仅由返回值类型区别重载;函数重载要处于同一作用域,不同作用域下的函数重载无意义(同一作用域下要满足第一条才能称作函数重载);调用时,由传入实参的类型以及个数进行决定,函数重载较为方便;函数重载是C++中静多态的一个设计

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值