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

C++ 内联函数可以在循环内调用吗?,c++,function,inline,C++,Function,Inline,我想知道内联函数是否可以在循环中调用..在循环中使用内联函数是语法错误还是不可取???你真的应该试试,但既然我在这里,是的,你可以。 仔细想想,这与在循环中键入函数代码(即内联)完全相同。内联函数可以像普通函数一样使用。你可以在任何地方给他们打电话,记下他们的地址,什么都可以 inline主要做两件事: 告诉编译器尽量避免函数调用,尽管编译器很可能会在那里做出自己的决定 允许重新定义,这对模板函数和类内定义的成员函数很重要。内联函数的定义需要出现在调用该函数的每个翻译单元中 因此,是的,您可以在

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

你真的应该试试,但既然我在这里,是的,你可以。
仔细想想,这与在循环中键入函数代码(即内联)完全相同。

内联函数可以像普通函数一样使用。你可以在任何地方给他们打电话,记下他们的地址,什么都可以

inline
主要做两件事:

  • 告诉编译器尽量避免函数调用,尽管编译器很可能会在那里做出自己的决定
  • 允许重新定义,这对模板函数和类内定义的成员函数很重要。
    内联
    函数的定义需要出现在调用该函数的每个翻译单元中

  • 因此,是的,您可以在循环中调用
    内联
    -函数,这没有什么问题。

    内联函数在语义上与非内联函数相同,在何处可以调用它们没有限制

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


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

    如果是语法错误,编译器会告诉您。你先问过你的编译器吗?你真的应该试试这些东西。它们和调用非内联函数没有区别。为什么你还要问??在第一次使用之前,不仅允许重新定义,而且要求在使用该函数(odr-)的任何翻译单元中重新定义。@BoBTFish thx,已编辑。顺便说一句,cppr说定义不需要在通话前出现,只需要在翻译单元的某个地方出现。嗯,这是有道理的。也许我是个白痴,对不起。