Декларация функции. Как объект языка Си, функцию необходимо объявить
Как объект языка Си, функцию необходимо объявить. Объявление функции пользователя, т.е. ее декларация, выполняется в двух формах – в форме описания и в форме определения.
Описание функции заключается в приведении вначале программного файла ее прототипа. Прототип функции сообщает компилятору о том, что далее в тексте программы будет приведено ее полное определение (полный ее текст): в текущем или другом файле исходного текста либо находится в библиотеке.
В стандарте языка используется следующий способ декларации функций:
тип_результата ID_функции(тип переменной1, …, тип переменной N);
Заметим, что идентификаторы переменных в круглых скобках прототипа указывать не обязательно, так как компилятор языка их не обрабатывает.
Описание прототипа дает возможность компилятору проверить соответствие типов и количества параметров при фактическом вызове этой функции.
Пример описания функции fun со списком параметров:
float fun(int, float, int, int);
Полное определение функции имеет следующий вид:
тип_результата ID_функции(список параметров)
{
код функции
}
Тип результата определяет тип выражения, значение которого возвращается в точку ее вызова при помощи оператора return <выражение>.
Если тип функции не указан, то по умолчанию предполагается тип int.
Список параметров состоит из перечня типов и идентификаторов параметров, разделенных запятыми.
Функция может не иметь параметров, но круглые скобки необходимы в любом случае.
Если функция не возвращает никакого значения, она должна быть описана как функция типа void (пустая).
В данном случае оператор return можно не ставить.
В функции может быть несколько операторов return, но может и не быть ни одного. В таких случаях возврат в вызывающую программу происходит после выполнения последнего оператора в функции.
Пример функции, определяющей наименьшее значение из двух целочисленных переменных:
int min (int x, int y)
{
return (x<y)? x : y;
}
Все функции, возвращающие значение, должны использоваться в правой части выражений языка С, иначе возвращаемый результат будет утерян.
Если у функции отсутствует список параметров, то при декларации такой функции желательно в круглых скобках также указать ключевое слово void. Например, void main(void).
В языке С каждая функция – это отдельный блок программы, вход в который возможен только через вызов данной функции.
Наличие определения функции делает излишним запись ее описания в остатке файла исходного текста.
Дата добавления: 2015-09-11; просмотров: 3633;