C++编程思想笔记——内联函数

C++中预处理器不能存取private数据

有两种编译器不能处理内联的情况:

1.假如函数太复杂,编译器不能执行内联。这取决于特定编译器,但大多数编译器这时都会放弃内联方式,因为这时内联可能不为我们提供任何效率。一般地,任何种类的循环

都被认为太复杂而不扩展为内联函数。循环在 函数里可能比调用花费更多的时间。加入函数仅有一条简单语句,编译器可能没有任何内联的麻烦。但加入有许多语句,调用函数的开销比执行函数体开销少多了。

2.加入要显式或隐含地取函数地址,编译器也不能执行内联。因为这时编译器必须为函数代码分配内存从而为我们产生一个函数的地址。但当地址不需要时,编译器仍可能内联代码。

必须理解内联仅是编译器的一个建议,编译器不强迫内联任何代码。一个好的编译器将会内联小的简单的函数,同时明智地忽略那些太复杂的内联。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值