4.3.1 函数内联 (Inlining) 函数内联(Inlining)从来不是编译器里一个“点一下就变快”的魔法开关——它是一场精密的博弈:在代码膨胀与执行效率之间,在调用开销与缓存局部性之间,在跨过程分析深度与编译时间成本之间,反复权衡、动态裁决。当你在 下看到某个 调用消失不见,取而代之的是直接读取 ;当你用 编译后,原本分散在三个 文件里的 、 、 全部坍缩进一个巨型基本块;甚至当你调试时发现 标注的函数依然没被内联——那一刻,你面对的不是编译器的“任性”,而是它背后一整套基于控制流图(CFG)、调用图(Call Graph)、成本模型(Cost Model)与上下文敏感启发式共同编织的决策网络。 我们不谈“内联能消除调用开销”这种教科书式的正确废话。