欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C/C++inline函数

程序员文章站 2024-03-23 14:54:34
...

特征

  • 相当于把内联函数里面的内容写在调用内联函数处;

  • 相当于不用执行进入函数的步骤,直接执行函数体;

  • 相当于宏,却比宏多了类型检查,真正具有函数特性;

  • 不能包含循环、递归、switch 等复杂操作;

  • 在类声明中定义的函数,除了虚函数的其他函数都会自动隐式地当成内联函数。

使用 

// 声明1(加 inline,建议使用)
inline int functionName(int first, int secend,...);
 
// 声明2(不加 inline)
int functionName(int first, int secend,...);
 
// 定义
inline int functionName(int first, int secend,...) {/****/};
 
// 类内定义,隐式内联
class A {
    int doA() { return 0; }         // 隐式内联
}
 
// 类外定义,需要显式内联
class A {
    int doA();
}
inline int A::doA() { return 0; }   // 需要显式内联

编译器对 inline 函数的处理步骤

  1. 将 inline 函数体复制到 inline 函数调用点处;

  2. 为所用 inline 函数中的局部变量分配内存空间;

  3. 将 inline 函数的的输入参数和返回值映射到调用方法的局部变量空间中;

相关标签: C/C++ c++

上一篇: JAVASE基础

下一篇: 【Java】split(".")