logo search
volkov / C++ / Бьерн Страуструп-Справочное руководство по С++

R.8.3 Определения функций

Определения функций имеют вид

определение-функции:

спецификации-описания opt описатель инициализатор-ctor тело-функции

тело-функции:

составной-оператор

Конструкция описатель из определения-функции должна содержать описатель

вида

D1 ( список-описаний-параметров ) список-спецификаций-cv opt

в соответствии с определениями из $$R.8.2.5

Формальные параметры относятся к области видимости самого

большого блока тела-функции.

Приведем пример полного определения функции.

int max( int a, int b, int c)

{

int m = (a > b) ? a : b;

return (m > c) ? m : c;

}

Здесь int представляет спецификации-описания, max(int a, int b, int c)

- описатель, а { /* ... */ } - тело-функции.

Конструкция инициализатор-ctor используется только в конструкторах,

см. $$R.9.3.1 и $$R.12.6.

Конструкция список-спецификаций-cv может участвовать:

в описании нестатической функции-члена, в определении нестатической

функции-члена или в описании указателя на функцию-член, см. $$R.9.3.1.

Она относится к типу функции.

Отметим, что неиспользуемым формальным параметрам имена можно

не давать, например,

void print(int a, int)

{

printf("a = %d\n",a);

}