|
|
Определения функций имеют вид
определение-функции:
спецификации-описания 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); }
| |