在我的项目中,我有一些在头文件中定义的“接口(interface)”函数。但是我有更多的函数只在同一个源文件中内部使用。所以在任何头文件中也没有函数声明。
将它们声明为 inline
是好的做法吗?由于内联函数的性能更好,这对我来说是个好主意。或者有什么缺点吗?我知道可执行文件的大小可能会变大,但这对我来说没问题。
最佳答案
不在不同翻译单元中共享的本地函数应限定为static
。
inline
说明符指示编译器尽可能内联函数,但不强制内联。如果您要求编译器内联函数,请使用 forceinline
或 __forceinline
来强制内联。
无论如何,当内联函数时,考虑到这并不总是最好的解决方案。您应该仔细检查代码的整体性能。内联过程将函数的代码合并到调用代码中。这需要一些寄存器可用性来执行计算而不干扰主执行。有时,寄存器快速移动的过程需要临时存储当前值等,这可能会降低代码的整体效率。
当进程很短并且在主代码中执行所需的时间少于调用序言和结尾所需的时间时,内联是有益的。
关于C 内联源文件中的所有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36159025/