Программирование на языке высокого уровня. Марапулец Ю.В. - 53 стр.

UptoLike

Составители: 

§ 2.7. Функции
Понятие функции есть центральный элемент при программировании на C++.
Вводной точкой для любой программы является функция main (WinMain для Windows).
По умолчанию функция имеет тип external, т.е. является доступной из любых фай-
лов программы. Если для функции указан тип static, то функция доступна только внутри
данного файла. Различают прототипы (предварительные описания, форварды) функций
и их определения. В C++ прототипы обязательны.
Определение функции имеет следующий формат:
type имя_функции (спецификация_формальных_параметров) {тело_функции},
где type - тип возвращаемого функцией значения, в том числе void, если функция не воз-
вращает значения, имя_функции - идентификатор. Спецификация формальных парамет-
ров это либо пусто, либо void, либо список спецификаций отдельных параметров. Для
каждого параметра может быть задано значение. Тело_функции - блок или составной
оператор (последовательность операторов и описаний) заключенный в фигурные скобки.
Важнейшим оператором тела функции является возврата в точку вызова return.
Примеры.
float f(float x, float y, float z)
{return (x*y+z);}
void s()
{
printf("Функция, не возвращающая значение");
}
Следует отметить, что язык С++ - язык со строгой типизацией, из чего следует, что
если в языке С описание int f() обозначает функцию типа int, то в языке C++ - функцию
типа int без параметров. Более предпочтительной формой является описание int f(void).
Например:
int func(void); // функция без параметров
int runc(T1 t1, T2 t2, ТЗ t3=l);
//три параметра. Для третьего задано значение по умолчанию
Параметры, которые задаются по умолчанию, должны быть последними в списке
параметров. Значение (...) в описании соответствует случаю, когда функция может быть
вызвана с переменным числом параметров. Например:
int printf (char *format, ...);
При трансляции вызова функции компилятор преобразует тип фактических пара-
метров в соответствии с описанием прототипа. Если прототип не указан, то преобразо-
вания параметров осуществляются в соответствии с некоторыми стандартными согла-
шениями. Правила преобразования указаны в следующей таблице 2.4. Вызов функции
может осуществляться двумя способами:
имя_функции (x
1
, x
2
, … , x
n
)
( *указатель_на_функцию) (x
1
, x
2
, … , x
n
)
53
     § 2.7. Функции

      Понятие функции есть центральный элемент при программировании на C++.
Вводной точкой для любой программы является функция main (WinMain для Windows).
      По умолчанию функция имеет тип external, т.е. является доступной из любых фай-
лов программы. Если для функции указан тип static, то функция доступна только внутри
данного файла. Различают прототипы (предварительные описания, форварды) функций
и их определения. В C++ прототипы обязательны.
      Определение функции имеет следующий формат:

     type имя_функции (спецификация_формальных_параметров) {тело_функции},

где type - тип возвращаемого функцией значения, в том числе void, если функция не воз-
вращает значения, имя_функции - идентификатор. Спецификация формальных парамет-
ров это либо пусто, либо void, либо список спецификаций отдельных параметров. Для
каждого параметра может быть задано значение. Тело_функции - блок или составной
оператор (последовательность операторов и описаний) заключенный в фигурные скобки.
Важнейшим оператором тела функции является возврата в точку вызова return.
Примеры.

      float f(float x, float y, float z)
      {return (x*y+z);}

      void s()
      {
              printf("Функция, не возвращающая значение");
      }

     Следует отметить, что язык С++ - язык со строгой типизацией, из чего следует, что
если в языке С описание int f() обозначает функцию типа int, то в языке C++ - функцию
типа int без параметров. Более предпочтительной формой является описание int f(void).
Например:

       int func(void); // функция без параметров
       int runc(T1 t1, T2 t2, ТЗ t3=l);
//три параметра. Для третьего задано значение по умолчанию

     Параметры, которые задаются по умолчанию, должны быть последними в списке
параметров. Значение (...) в описании соответствует случаю, когда функция может быть
вызвана с переменным числом параметров. Например:

      int printf (char *format, ...);

     При трансляции вызова функции компилятор преобразует тип фактических пара-
метров в соответствии с описанием прототипа. Если прототип не указан, то преобразо-
вания параметров осуществляются в соответствии с некоторыми стандартными согла-
шениями. Правила преобразования указаны в следующей таблице 2.4. Вызов функции
может осуществляться двумя способами:

      имя_функции (x1, x2, … , xn)
      ( *указатель_на_функцию) (x1, x2, … , xn)


                                           53