|
|||
Инструкция return. Прототипы функцийИнструкция return Инструкция return используется для двух целей. Когда она выполняется, управление программой немедленно передаётся обратно в вызывающее окружение. Кроме того, если за ключевым словом return следует какое-либо выражение, то его значение также передаётся в вызывающее окружение. Это значение должно допускать неявное преобразование к типу, указанному в заголовке определения функции. Инструкция return имеет одну из двух форм: Return; Return (выражение); Скобки в выражении return не обязательны. Вычислим наименьшее из двух целых: #include <iostream.h> int min(int x, int y) { if (x < y) return x; else return y; } int main() { int main() { int j, k, m; cout << “введите два целых числа: ”; cin >> j >> k; m = min (j, k); cout << ‘\n’ << m <<”наименьшее из” << j << “ и ” << k << endl; }
2. Прототипы функций
Синтаксис функций в С++ инспирировал синтаксис прототипов функций, используемый компиляторами со стандартного (ANSI) С. по сути, возвращаемый тип, идентификатор функции и типы параметров составляют прототип функции. Прототип функции (function prototype) – это объявление функции, ноне её определение. Благодаря явному объявлению возвращаемого типа и списка типов аргументов, в С++ при обращении к функции возможны строгая проверка типов и неявные преобразования типов. Итак, функция может быть объявлена до того, как она определена. Определение функции может идти позже в этом же файле, браться из библиотеки или из указанного пользователем файла. Прототип функции имеет следующую форму: Тип имя (список_объявлений_аргументов); Список_объявлений_аргументов может быть пустым, содержать единственное объявление или несколько объявлений, разделённых запятыми. Если функция не имеет параметров, допускается использование ключевого слова void. В С++ функция с пустым списком параметров выглядит как имя_функции(). Такая информация позволяет компилятору отслеживать совместимость типов. Аргументы преобразуются к указанным в объявлении типам так же, как в случае присваивания. В программе “наименьшее из двух” мы использовали функцию min(). Её прототип будет: Int min(int, int); И возвращаемый тип функции, и типы аргументов в списке указываются явно. Определение функции min() должно соответствовать этому объявлению. Прототип функции может также содержать имена аргументов. В случае min() это могло бы выглядеть так: Int min(int x, int y); В С++ используется эллипсический символ (ellipsis – пропущенная, но подразумеваемая функция) (…) для обозначения списка аргументов, который не указан, но подразумевается. Функция printf() из стандартной библиотеки stdio.h имеет следующий прототип: Int printf(const char* cntrl_str, …); Такая функция может быть вызвана с произвольным списком фактических параметров, но подобной практики следует избегать, так как она не обеспечивает безопасность типов.
|
|||
|