在学习 C 语言优化时,你一定听过这样一句话:
“把小函数写成 inline,可以提高程序运行效率。”
那问题就来了:
-
inline到底是什么? -
真的是“写了就一定快”吗?
-
编译器到底听不听你的?
-
实际开发中到底该不该用?
这篇文章就用大白话 + 实战代码,带你一次性彻底搞懂 inline。
一、什么是内联函数(inline)?
我们先从最直观的理解开始。
1. 普通函数是怎么执行的?
比如这样一个函数:
int add(int a, int b) { return a + b; }
在程序中调用:
int c = add(3, 5);
真实执行过程是:
-
程序跳转到
add函数 -
执行
a + b -
再跳回来继续执行
这个过程就叫 函数调用开销(压栈、跳转、返回)。
2. inline 的本质:不是“调用”,而是“展开”
如果你这样写:
inline int add(int a, int b) { return a + b; }
编译器在合适的情况下会直接变成这样:
int c = 3 + 5;
没有函数跳转
没有压栈出栈
就像手写代码一样快
所以一句话总结:
inline 的本质就是:用空间换时间。
二、为什么 inline 能提升性能?
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/u012732668/article/details/155652578



