2015-11-12 3 views
2

Я пишу рекурсивную программу в C ...C - рекурсивная функция

enter image description here

Учитывая эту структуру для выражения "(1 + 3) * 2", как я мог вызвать функцию E внутри F в случае скобки? Очевидно, что E должен был бы быть объявлен до F .. но тогда как я мог бы назвать F? Я действительно топаю в этом, у меня есть программирование, работающее для всех случаев без круглых скобок, но, похоже, не может понять эту часть.

+1

Можете ли вы объяснить некоторые больше логики? Я не следую. –

+0

Подсказка: конвертируйте выражение вашего infix в постфикс –

ответ

3

Просто объявите обе функции и определите их в том порядке, в котором вы хотите.

Это будет что-то вроде этого:

/*** header.h ***/ 
int E(int argument); 
int F(int argument); 

/*** source.c ***/ 
int E(int argument) { 
    /* ... do smth ... */ 
    F(arg+1); 
} 

int F(int argument) { 
    /* ... do smth ... */ 
    E(arg+1); 
} 
+0

Ничего себе, спасибо огромное ха-ха. Я новичок в C, поэтому я не знал об этом. Это должно работать отлично. – user3106433

+1

@ user3106433 Хорошей привычкой является размещение этих прототипов в файле заголовка;) – Kotshi

Смежные вопросы