gpt4 book ai didi

C++ - CPP 和 H 中定义的内联有什么区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:35 27 4
gpt4 key购买 nike

这不是一个“我有这个问题”的问题,而是一个“我真的很想了解该语言如何更好地工作”的问题。

我最近开始遇到在给定类的 .cpp 文件中定义内联功能。我想了解内联功能的定义点之间的区别实际上是什么。在对 CPP 中定义的内联进行对象级分析时,似乎有更高百分比的 C++ 中声明的内联(与在 .h 中定义的相反)被优化为映射函数而不是合法内联 - 是这是主要区别,或者这背后是否还有其他我没有看到的目的。

最佳答案

没有区别。 inline 是对编译器的提示,但现在并不是特别重要,因为编译器非常擅长在没有您帮助的情况下确定是否内联扩展函数(参见 register关键字)。

inline 还告诉编译器不同翻译单元中的多个定义是可以的(前提是它们相同),当您将内联函数放入头文件时需要这样做。

当在 .cpp 文件中定义内联函数时,其定义仅在该文件中可见,因此无法从其他源文件调用它。

关于C++ - CPP 和 H 中定义的内联有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12147489/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com