Определение (описание) функции

Определение или описание функции содержит перечень тех операций, которые будут производится внутри функции.

Схема:

Тип_результата Имя_функции (Тип_пар1 Имя_пар1, Тип_пар2 Имя_пар2, …) { Оператор1; Оператор2; … ОператорN; return n;};

  • Имя_парN — уникальное внутри функции имя N-roпараметра. Имена параметров можно задавать и в прототипе функции, тогда вопределении надо использовать те же имена.
  • ОператорN — некоторые операторы и выражения,содержащиеся внутри функции и выполняющиеся каждый раз при вызове функции.Внутри операторов мы можем обращаться к глобальным объектам программы; клокальным объектам, объявленным внутри функции; а также к аргументамфункции.
  • return n — оператор, останавливающий работуфункции и возвращающий n в качестве её значения (при этом тип n долженсоответствовать типу результата в объявлении функции). Наличие этогооператора обязательно для функции возвращающей значение. Для функцииобъявленной как void можно вызывать оператор return без аргументов, этодосрочно завершит функцию, иначе — будут выполнены все действия до концаблока описания функции.

Блок определения функции называется также её телом.

Одна функция не может объявляться или определяться внутри другой (т.е. нельзя объявлять и определять функции внутри main).

Пример объявления и описания функции:

int max (int, int);int max (int n1,int n2) { if(nl > n2) { return n1; } else { return n2; }} int main(void) { int а = 100 — max(10,20); cout Видно, что вся информация, имевшаяся в прототипе функции, повторяется в её определении, поэтому если функция определена до её первого вызова, то отдельно прототип указывать не обязательно.

Пример:

double cube (double a) { return a*a*a;} int main(void) { double pi = 3.1415; cout Но отдельно прототип указывают в тех случаях, когда функция будет описываться позже своего использования. Например, можно было объявить функцию до main, вызвать её из main, но описать только после main.

Пример:

double cube (double);int main(void) { double pi = 3.1415; cout Типы функций

В C используются различные виды функций. Прежде всего это стандартные и библиотечные функции. Стандартные функции входят в стандартную библиотеку, поставляемую вместе с компилятором.

К библиотечным относятся любые функции, описание и реализация которых находятся в библиотеках не входящих в стандартный набор.

Библиотеки подключается при помощи директивы препроцессора #include. После директивы препроцессора указывается имя библиотеки или имя заголовочного файла библиотеки. Имя заключается в угловые скобки (для стандартных библиотек) или в двойные кавычки (для остальных библиотек).

Например, для того, чтобы подключить библиотеку математических функций необходимо в начале файла с исходным кодом указать следующую директиву:

#include "math.h"

Обычно все библиотеки располагаются в каталогах, прописанных в служебных переменных LIB или INCLUDE или в одном каталоге с основной программой. Однако, если библиотека располагается в некотором специфическом месте, то вместе с именем следует указать полный путь к ней. Следует отметить, что такая организация является не корректной, поскольку привязывается к текущему состоянию файловой системы.

Случайное удаление файла библиотеки или перенос исходных текстов на другую машину или даже просто в другой каталог могут привести к невозможности сборки такой программы.

Встраиваемые функции

Не всегда логически верное выделение фрагмента кода выгодно с точки зрения производительности. Чаще всего такая ситуация возникает, когда функция выполняет ряд простых арифметических действий. В таких случаях следует использовать встраиваемые функции.

Встраиваемая функция описывается точно также, как и обычная, но ее заголовок предваряется служебным словом inline:

inline int swap(int a, int b){ a = a+b; b = a-b; a = a-b;}

Как только компилятор встречает служебное слово inline, он воспринимает это как команду вставить тело функции в код основной программы без оформления вызова функции. В результате исходный код выглядит логично и не громоздко, а на быстродействии это никак не сказывается.

Рандомно подобранные статьи с сайта:

Функция. Область определения и область значений функции


Похожие статьи:

  • Определение, описание и вызов функции

    Следует различать определение функции, описание функции (заголовок) и вызов функции. Формат определения функции: []([]) {} Спецификация формальных…

  • Определение функций в языке си

    Функция — это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое…

  • Объявление и описание функций

    ФГБОУ НВФ Омский государственный технический университет Отчёт По контрольной работе: “ ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАЦИИ” Выполнил: Студент группы…

admin