Возможно ли иметь рекурсивную встроенную функцию?
Хотя вы можете вызывать встроенную функцию из самой себя, компилятор может не генерировать встроенный код, поскольку не может определить глубину рекурсии во время компиляции.
Компилятор с хорошим оптимизатором может встраивать рекурсивные вызовы до некоторой глубины, зафиксированной во время компиляции (скажем, три или пять рекурсивных вызовов), и вставлять нерекурсивные вызовы во время компиляции для случаев, когда фактическая глубина будет превышена во время выполнения.
Хотя вы можете вызывать встроенную функцию из самой себя, компилятор может не генерировать встроенный код, поскольку не может определить глубину рекурсии во время компиляции.
Компилятор с хорошим оптимизатором может встраивать рекурсивные вызовы до некоторой глубины, зафиксированной во время компиляции (скажем, три или пять рекурсивных вызовов), и вставлять нерекурсивные вызовы во время компиляции для случаев, когда фактическая глубина будет превышена во время выполнения.