c++ - 定义一个调用其他函数的内联函数是否有意义?

标签 c++ inline

据我所知,内联函数是一种增强性能的优化,因此它的运行速度应该与宏一样快。内联函数的代码应尽可能短。

我想知道在内联函数中嵌入函数调用是否有意义。如果答案是肯定的,在什么情况下有什么限制?

实际上,我问这个问题是因为我看了一段代码,有人从内联函数中调用诸如“socket()”、“sendto()”和“memset()”等函数;在我看来,这超越了内联函数的目的。

注意:在我的代码中,没有使用任何对函数的条件调用,内联函数只是将参数传递给被调用函数。

最佳答案

I wonder if it make sense to embed functions calls inside an inline function.

当然可以。内联对函数的调用仍然是一种优化,消除了该函数调用的成本并允许在调用函数的上下文中进行进一步优化,无论它是否依次调用其他函数。

in which context and what are the restrictions?

我不知道你所说的“上下文”是什么意思;但是在内联函数中可以做什么没有限制。声明函数 inline 的唯一语义效果是允许多个相同的定义,并且需要在使用该函数的任何翻译单元中进行定义。在所有其他方面,它与任何其他函数定义相同。

关于c++ - 定义一个调用其他函数的内联函数是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27904237/

相关文章:

c++ - 解释以下 C++ 代码片段

c++ - 如何为服务器处理标记TCP?

java - 在java中强制内联

email - 如何将内联图像嵌入到 ASP.net Core 应用程序中的 Mailgun?

C++ std::set 如何处理元素的动态排序

c++ - std::is_unsigned 是否暗示 std::is_integral

c++ - 在 if-else if 链中使用 Likely()/Unlikely() 预处理器宏

php - 内联 PHP 克隆

javascript - 在 WebSharper 中的整数类型之间转换

javascript - 内联样式 react 组件的可变样式对象