内联函数说明符
内联函数是指编译器将代码从函数定义直接复制到调用函数的代码中,而不是在内存中创建单独的指令集。 可以直接将函数主体的修改副本替换为函数调用,而不是将控制转移到函数代码段和从函数代码段转移。 这样就避免了函数调用的性能开销。 使用 inline 说明符只是对编译器的建议,即可以执行内联扩展; 编译器可以随意忽略该建议。
任何函数 ( main除外) 都可以声明或定义为与 inline 函数说明符直接插入。 不允许在内联函数的主体中定义静态局部变量。
在类声明中实现的 C++ 函数是内联自动定义的。 可以将在类声明外部声明的常规 C++ 函数和成员函数 ( main除外) 声明或定义为内联 inline 函数说明符。 在内联函数的主体中定义的静态本地和字符串字面值被视为跨转换单元的相同对象; 请参阅 内联函数的链接 以获取详细信息。
以下代码片段显示内联函数定义:
inline int add(int i, int j) { return i + j; }使用 inline 说明符不会更改函数的含义。 但是,函数的内联扩展可能不会保留实际自变量的求值顺序。对内联函数进行编码的最有效方法是将内联函数定义放在头文件中,然后将头包含在包含对您要内联的函数的调用的任何文件中。
注:
inline 说明符由以下关键字表示:
__inline__关键字在所有语言级别都受支持。 C99 添加了对inline关键字的支持。
inline和__inline__关键字在所有语言级别都可识别。
相关信息
- noinline 函数属性
- ILE C/C++ 编译器参考 中的 LANGLVL