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 函数的处理步骤
-
将 inline 函数体复制到 inline 函数调用点处;
-
为所用 inline 函数中的局部变量分配内存空间;
-
将 inline 函数的的输入参数和返回值映射到调用方法的局部变量空间中;
上一篇: JAVASE基础
下一篇: 【Java】split(".")