InsideDarkWeb.com

Почему можно вызвать функцию в ее определении?

У нас есть функция foo():

 bool foo(int a)
    {
        if (a == 3)
        {
            foo(a+1);
        }
        return false;
    }

Почему мы можем ее вызвать прямо в определении?

One Answer

Вызов функции из самой себя называется рекурсией. Понятно, что для обеспечения работоспособности такого кода должно быть достижимо условие завершения рекурсии. Иначе (при заведомо ограниченном объеме памяти) программа грохнется с переполнением стека (Stack overflow).

Для С++ рекурсивный вызов разрешён для любых функций кроме main. Ссылка на черновик стандарта:

Recursive calls are permitted, except to the main function

Answered by αλεχολυτ on January 12, 2021

Add your own answers!

Related Questions

Webpack – есть вопросы

0  Asked on December 11, 2020 by zerxa

   

Не работает вёрста в библиотеке html2pdf

1  Asked on December 11, 2020 by venomphp

   

Ask a Question

Get help from others!

© 2021 InsideDarkWeb.com. All rights reserved.