C 内联源文件中的所有函数

标签 c inline

在我的项目中,我有一些在头文件中定义的“接口(interface)”函数。但是我有更多的函数只在同一个源文件中内部使用。所以在任何头文件中也没有函数声明。

将它们声明为 inline 是好的做法吗?由于内联函数的性能更好,这对我来说是个好主意。或者有什么缺点吗?我知道可执行文件的大小可能会变大,但这对我来说没问题。

最佳答案

不在不同翻译单元中共享的本地函数应限定为static
inline 说明符指示编译器尽可能内联函数,但不强制内联。如果您要求编译器内联函数,请使用 forceinline__forceinline 来强制内联。
无论如何,当内联函数时,考虑到这并不总是最好的解决方案。您应该仔细检查代码的整体性能。内联过程将函数的代码合并到调用代码中。这需要一些寄存器可用性来执行计算而不干扰主执行。有时,寄存器快速移动的过程需要临时存储当前值等,这可能会降低代码的整体效率。
当进程很短并且在主代码中执行所需的时间少于调用序言和结尾所需的时间时,内联是有益的。

关于C 内联源文件中的所有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36159025/

相关文章:

javascript - CSS 或 JS - 删除内联元素的默认横向空格

html - 重叠内联 div

c - strcpy 的段错误

c++ - Microsoft C++ 语言引用

您可以在 C 语言的 switch 语句中的 case 中使用 while 循环吗?

css - Bootstrap 外部样式表不样式化 html

html - 为什么我发送的时事通讯中的图像之间有空格?

android - 使用 spannablestring 在文本左侧附加图像

c - pop 和 peek 在那种情况下做同样的事情?

c - STM32L0 上的 VREF 输出