内联函数

  • 内联函数(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  

你可能感兴趣的:(C/C++,c++,c语言)