如果我们将递归函数作为内联函数会发生什么?

gst*_*gst 6 c recursion inline-functions

我对内联函数有疑问.内联函数不会涉及任何函数调用,只需在对内联函数进行调用时替换函数定义.内联函数具有类型强制,与宏不同.如果递归函数是内联的,会发生什么?

Eri*_*ler 5

“内联”不是保证,而是请求。

您的递归内联函数(通常)不会内联。

  • 正如一些评论者所指出的,还有特殊情况下(例如使用编译器特定的编译指示),其中内联可能的。


Ale*_*nze 5

inline 仅仅是对编译器的建议,并不保证函数将被内联.

显然,编译器无法无限地内联递归函数.它可能根本没有内联它,或者它可能只是深入几个层次.