内联函数

本文介绍了C++中的内联函数,它用于提高代码执行效率,通过避免函数调用时的开销。内联函数适用于短小且频繁调用的函数,但不包括递归函数。对比非内联函数,内联函数在汇编代码中表现为直接替换,减少了栈空间的使用。此外,内联函数具备语法检查和函数特性,类似于宏定义但更安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 内联函数(inline function)
    • 使用inline对函数的声明或实现进行修饰
    • 内联函数是直接将函数里面的代码进行替换,不会开辟函数栈空间
    • 什么时候使用内联函数
      • 函数代码体积不大(不超过10行)
      • 频繁调用的函数
      • 递归不会变成内联函数
    • 内联函数跟宏差不多,比宏定义多了语法检测和函数特性

非内联


int sum(int a, int b)
{
    return a + b;
}
int main()
{
    int c = sum(10, 20);
    return 0;
}

其对应的汇编代码

    //int c = sum(10, 20);
00F61014 6A 14                push        14h  
00F61016 6A 0A                push        0Ah  
00F61018 E8 E3 FF FF FF       call        sum (0F61000h)  
00F6101D 83 C4 08             add         esp,8  
00F61020 89 45 FC             mov         dword ptr [c],eax  

内联函数


inline int sum(int a, int b)
{
    return a + b;
}
int main()
{
    int c = sum(10, 20);
    return 0;
}

其对应的汇编代码

    //int c = sum(10, 20);
000E1004 B8 0A 00 00 00       mov         eax,0Ah  
000E1009 83 C0 14             add         eax,14h  
000E100C 89 45 FC             mov         dword ptr [c],eax  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值