可以在循环内调用内联函数吗?

时间:2014-02-14 15:30:33

标签: c++ function inline

我想知道是否可以在循环中调用内联函数..是在循环中使用内联函数语法错误还是不可取的?

3 个答案:

答案 0 :(得分:3)

内联函数可以像普通函数一样使用。你可以随时随地打电话给他们,拿走他们的地址,等等。

inline基本上做了两件事:

  1. 告诉编译器尽量避免函数调用,尽管编译器很可能会在那里做出自己的决定。
  2. 允许重新定义,这对模板函数和类内定义的成员函数很重要。 inline函数的定义需要存在于调用函数的每个翻译单元中。
  3. 所以是的,你可以在循环中调用inline - 函数,它没有任何问题。

答案 1 :(得分:2)

内联函数在语义上与非内联函数完全相同,对可以调用它们的位置没有限制。

唯一的区别是它们可以被多重定义,并且必须在每个调用它们的翻译单元中定义。这样定义在调用函数的地方是可用的,允许编译器在决定它应该调用时内联调用。

您可能会认为所有对内联函数的调用都是内联的。事实并非如此。关键字可能(或可能不会)影响决策,但它不会强制它,并且以无法内联的方式(例如递归)调用函数不是错误。

答案 2 :(得分:1)

你应该真的尝试一下,但既然我在这里,是的,你可以。 如果您考虑一下,它与在循环中键入您的功能代码(即内联)完全相同。