Составители:
Рубрика:
§ 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
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »
