Хелпикс

Главная

Контакты

Случайная статья





Инструкция 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, …);

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



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.