double arrow

Определение функции (реализация)

Определение функции включает те же поля, что и прототип функции + тело функции – код, выполняющийся при вызове функции (заключён в {}).

double summa (double a, double b)

{

double c;

c=a+b;

return c;

}

Вызов функции: для обеспечения эффективного и безопасного вызова функций требуется обеспечить:

1) связь по управлению;

a) вызов и возврат;

b) сохранение и восстановление контекста вызывающей части;

2) функция должна производить одни и те же действия с разными наборами данных.

вызывающая часть стек функция
a=5; b=8;   1) Сохранение контекста
sum(a;b)   вызова.
1) Формирование 2) Создание текущего
параметров в стеке. 5 контекста.
2) Сохранение адреса   3) Тело функции.
возврата и передача   4) Формирование
управления (вызова).   return sum func
3) Восстановление   5) Восстановление контекста
стека.   вызова.
4) Получение результата.   6) Возврат.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: