【C++面向对象】4. 内联函数

【 1. 基本原理 】

  • 内联函数(inline function)的主要特点 是:它会复制源函数代码到调用的位置,而不像普通函数一样进行现场保护、跳转执行然后恢复现场等操作,通过 牺牲代码的空间换时间,使程序效率提高。
  • 底层实现:编译时在函数调用处用函数体替换,类似于C语言中的宏展开,但是优于宏(因为内联函数会进行类型检查)
    对内联函数进行任何修改,都需要重新编译函数的所有客户端 ,因为编译器需要重新更换一次所有的代码,否则将会继续使用旧的函数。
  • 应用场景
    建议使用的情况:函数代码本身较短,系统可能默认处理其为内联函数、频繁被调用的处于循环中的函数。
    不能使用的情况:过于巨大的函数,编译器可能拒绝该函数作为内联函数来插入、递归函数

【 2. 内联函数的操作】

  • 如果想把一个函数定义为内联函数,则需要在函数名前面放置 关键字 inline,在调用函数之前需要对函数进行定义。
    • 如果已定义的内联函数 多于一行,编译器会忽略 inline 限定符
    • 类定义声明或者定义的函数默认都是内联函数,即使没有使用 inline 关键字。
    • 使用inline关键字修饰的外部函数也属于内联函数。
  • 实例
#include <iostream>

using namespace std;

inline int Max(int x, int y)
{
   return (x > y)? x : y;
}

// 程序的主函数
int main( )
{

   cout << "Max (20,10): " << Max(20,10) << endl;
   cout << "Max (0,200): " << Max(0,200) << endl;
   cout << "Max (100,1010): " << Max(100,1010) << endl;
   return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MR_Promethus

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

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

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

打赏作者

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

抵扣说明:

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

余额充值