Форум программистов, компьютерный форум CyberForum.ru

может ли рекурсивная функция быть встроенной? - C++

Восстановить пароль Регистрация
 
John Paramol
Сообщений: n/a
09.02.2011, 19:29     может ли рекурсивная функция быть встроенной? #1
сам знаю, что не может, а почему компилится без ошибок;
видимо оно компилится как обычная?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2011, 19:29     может ли рекурсивная функция быть встроенной?
Посмотрите здесь:

C++ error c2731 winmain функция не может быть перегружена. Как убрать данную ошибку?
рекурсивная функция C++
C++ Рекурсивная функция
Рекурсивная функция C++
C++ Рекурсивная функция
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
man_of_ring
4 / 4 / 0
Регистрация: 09.12.2010
Сообщений: 278
09.02.2011, 22:37     может ли рекурсивная функция быть встроенной? #2
что значит встроенная функция ?
это типа inline ?
код показать можешь?

P.S. инлайн может, это просто раскрытие функции вместе ее вхожденя в код, что то типа механизма макросов через define
а рекурсия ? в принипе это всего лишь вызов самого себя N-ое кол-во раз...вот и все.
Интересно ... поглядеть.
John Paramol
Сообщений: n/a
11.02.2011, 18:57     может ли рекурсивная функция быть встроенной? #3
может быть, не совсем понятна моя мысль, рекурсия предполагает, что число раз (N) неизвестно;
inline предполагает, что код встраивается в место вызова, при этом компилятор уже должен знать это самое N, чтобы этот самый код встроить.
В принципе, это возможно, в случае, когда при вызове ф-ии в качестве аргумента используется константа, например
Код
func(3);
но я пробовал с переменными, все компилилось.
вот пример
Код
//пример функции для факториала
inline func(int I){
if (I==1) return 1;
return I*func(I-1); }
int Value;
main()
{
  Value=чему-то;
  func(Value);
}
paradise
Сообщений: n/a
14.02.2011, 16:18     может ли рекурсивная функция быть встроенной? #4
Компилятор 'кладет' на ваш inline
paradise
Сообщений: n/a
15.02.2011, 09:01     может ли рекурсивная функция быть встроенной? #5
Отнеситесь серьезно к моему предыдущему посту, т.к. он в оснаван на материале книги Б.Страуструпа 'Язык С++' Специальное издание. Б. пишет примерно следующее (кстати, там пример вычисления факториала рассмотрен ): деректива inline говорит компилятору пытатся оптимизировать вызов функции. Дальнейшие действия зависят от компилятора. Так например вызов fack(3) может быть откомпилирован одним компилятором без исзменений - fack(3), а другой просто поставит в место вызова число 6.
Yandex
Объявления
15.02.2011, 09:01     может ли рекурсивная функция быть встроенной?
Ответ Создать тему
Опции темы

Текущее время: 06:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru