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

时间:2013-04-09 18:06:54

标签: c recursion inline-functions

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

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

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

  • 正如一些评论者指出的那样,特殊情况(例如,使用特定于编译器的编译指示),其中 可能是