возвращаемый_тип имя_функции (список объявлений формальных параметров)
{
объявления /* тело функции */
операторы
}
возвращаемый_тип имя_функции (список формальных параметорв)
объявление формальных параметров
{
объявления /* тело функции */
операторы
}
Рекомендуется первая форма, соответствующая
стандарту ANSI языка Си. Вторая форма использует
стандарт K&R языка Си и обеспечивает совместимость с существующими программами на языке Си.
Именем функции является
идентификатор. Подобно другим идентификаторам имя может содержать буквы, цифры, символ подчеркивания, но не может начинаться с цифры. Имя функции считается внешним идентификатором. Оно может использоваться внутри любой другой функции (или внутри определяемой функции). Количество значащих символов в имени зависит от системы. Рекомендуется использовать в именах строчные буквы.
Важным различием между определением функции в стандарте ANSI (называемым также
определением прототипа функции) и определением функции в стандарте K&R является то, что использование формы ANSI требует, чтобы при
вызове функции ее аргументы были преобразованы к типу, ожидаемому функцией. Для того, чтобы эти соглашения выполнялись, вызову функции должно предшествовать определение прототипа функции или
объявление прототипа функции. Если тип фактического параметра не может быть преобразован к требуемому типу аргумента, компилятор выдает сообщение об ошибке.
При использовании определения или объявления функции в форме K&R Си выполняются предполагаемые по умолчанию преобразования типа.
Пример 1
/*возвращает площадь круга, заданного радиусом*/
double area_circle(double radius)
{
return 3.14159*radius*radius;
}