Каждая новая функция должна иметь свое уникальное имя.
Оператор return служит для выхода из функции и возврата в следующую строку от ее вызвавшей.
Если return отсутствует функция выполняется до закрывающей фигурной скобки и управление возвращается в следующую строку от ее вызвавшей.
Если после оператора return находится возвращаемое значение, функция завершается и возвращается управление в строку ее вызвавшеую и она заново выполняется, только вместо вызова функции находится возвращаемое ей выражение стоящее после return.
Пример вызова функции и порядок выполнения кода по номерам строк:
(1) messagebox ("Первая строка кода");
(2) name_function();
(5) messagebox ("Третья строка кода");
function name_function()
{
(3) messagebox ("код функции");
(4) messagebox ("код функции. строка вторая");
}
| Пример выполнения функции если есть оператор return:
(1) messagebox ("Первая строка кода");
(2) name_function();
(4) messagebox ("Третья строка кода");
function name_function()
{
(3) messagebox ("код функции");
return;
(никогда не выполнится) messagebox ("код функции. строка вторая");
}
| Пример выполнения функции если после оператора return стоит возвращаемое значение.
До вызова функции:
(1) messagebox ("Первая строка кода");
(2) if (name_function()==5) messagebox ("Функция вернула 5");
(4) messagebox ("Третья строка кода");
function name_function()
{
(3) int a=7;
return a-2;
(никогда не выполнится) messagebox ("код функции. строка вторая");
}
| После вызова функции строка (2) примет такой вид if (7-2==5)messagebox ("Функция вернула 5");
и будет заново выполнена:
(1) messagebox ("Первая строка кода");
(2) if (7-2==5) messagebox ("Функция вернула 5");
(3) messagebox ("Третья строка кода"); | В функцию можно передавать параметры, в которых могут быть как значения, переменные, так и указатели на переменные.
Пример передачи значений в функцию:
name_function(5);
function name_function(int a)
{
messagebox (a);
} | Переменные объявленные в параметрах и теле функций видны только в этой функции. То же самое касается и меток переходов.
|