【C/C++】inline关键词

C++ inline 关键字学习笔记

一、什么是 inline 函数?

inline(内联)是 C++ 中的一个关键字,表示“将函数的代码直接插入到调用点”,以减少函数调用开销,提升执行效率。

✅ 注意:inline 是一种“请求”,编译器不一定会采纳它。


二、为什么使用 inline

通常,函数调用会有如下流程:

  • 参数压栈
  • 跳转到函数地址
  • 执行函数体
  • 返回并恢复现场

这个过程有一定的性能开销。对于体积小、调用频繁的函数,可以使用 inline 来减少这些开销。


三、如何使用 inline

✅ 语法格式:

inline 返回类型 函数名(参数) {
    // 函数体
}

四、代码示例

🔹 示例一:普通函数

int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(1, 2);  // 正常函数调用,有开销
}

🔹 示例二:inline 函数

inline int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(1, 2);  // 编译器可能会将调用展开为 int result = 1 + 2;
}
  • 优势:省去了函数调用的跳转和返回,提升性能。
  • 缺点:如果函数体太大、频繁展开,会增加可执行文件体积(代码膨胀)。

五、适合使用 inline 的场景

适合用 inline 的情况不适合用 inline 的情况
函数体非常小函数体很大
调用频繁很少调用
希望去除调用开销对性能影响不大
函数定义通常写在头文件中函数定义隐藏在源文件中

六、常见应用

🔸 头文件中定义的函数默认建议加 inline

// math_utils.hpp
#pragma once

inline int square(int x) {
    return x * x;
}

如果你不加 inline,多处包含这个头文件时,会造成链接错误(重复定义)。


七、与宏的对比

#define ADD(a, b) ((a) + (b))     // 宏

inline int add(int a, int b) {   // inline 函数
    return a + b;
}
  • 宏没有类型检查、可能有副作用
  • inline 函数安全、可调试、有作用域

结论:inline 更推荐使用!


八、总结

项目说明
作用减少函数调用开销,将函数体插入到调用点
使用场景函数体小、调用频繁、在头文件中定义
注意事项编译器不一定接受;不要滥用大型函数内联
替代宏inline 比宏更安全,推荐使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值