Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Функции в языке С18: определение функции, прототип, библиотечные функции.

Читайте также:
  1. A. Определение
  2. I. ОПРЕДЕЛЕНИЕ ИНТУИЦИИ
  3. I. ОПРЕДЕЛЕНИЕ НАВИГАЦИОННЫХ ЭЛЕМЕНТОВ
  4. II. Определение возможного способа разработки системы.
  5. II. Терминология и определение понятий
  6. III Непрерывность дифференцируемой функции
  7. III – 2. Расчёт теплового баланса, определение КПД и расхода топлива

Определение функции. Программа на языке Си состоит из одной или нескольких функций. Функция – это логически самостоятельная именованная часть программы, которой могут передаваться параметры и которая может возвращать какое-то значение.

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

возвращаемый_тип имя_функции(тип параметр_1, …,тип параметр_n)

{

описание данных;

оператор_1;

……

оператор_m;

return (выражение);

}

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

Поле «возвращаемый_тип» задает тип возвращаемого функцией значения (char, int, float и т.д.). Если функция не возвращает никакого значения, то в поле «возвращаемый_тип» записывается ключевое слово void (пустой).

После имени функции в скобках помещаются аргументы (или по-другому параметры), передаваемые в функцию, они содержат любую комбинацию типов и имен. Это поле в определении функции называется списком формальных аргументов (или параметров). Поле «список аргументов» - не обязательная часть в определении функции. Если в функцию не передаются никакие аргументы, то это поле – пустое или содержит ключевое слово void.

Пример определения функции:

int mul(int a, int b)

{ int y;

y = a * b;

return y; }

Определения функций могут размещаться в различных частях программы, в том числе и в различных файлах. Поэтому может возникнуть ситуация, когда вызывается функция, определение которой находится ниже (по тексту) в программе. Это вызывает сбой в работе компилятора.

Прототип функции. Стандарт языка Си требует, чтобы функции были объявлены до первой ссылки на них. Это «предварительное» объявление называется прототипом функции. Оно извещает компилятор о типе возвращаемого значения, количестве и типе аргументов. Используя прототип, компилятор может выполнить тщательный контроль числа аргументов и соответствие их типов в вызовах функции и ее определении.

Современный стиль записи прототипа имеет следующий формат:

возвращаемый_тип имя_функции(тип параметр_1, …., тип параметр_n);

Сравнивая формат прототипа с определением функции, можно сделать вывод о том, что прототип точно повторяет первую строку определения функции. Пример прототипа для рассмотренной ранее функции:

int mul(int a, int b);

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

Прототипы функций обычно размещаются в начале программы после директив препроцессора. Общеупотребительная практика - помещение прототипов функций в заголовочный файл, подключаемый директивой #include к тексту программы.

Библиотечные функции. MPLAB C18 имеет обширные библиотеки, содержащие функции для решения часто встречающихся задач. Использование таких готовых функций избавляет пользователя от необходимости разработки соответствующих средств и предоставляет ему дополнительный сервис.

Стандартные функции языка Си оформлены в соответствующие программные модули, включены в библиотеки и поставляются с системой программирования. Их прототипы даны в файлах типа *.h. Поэтому в начале программы с библиотечными функциями должны быть строки вида #include<включаемый файл вида *.h>.


Дата добавления: 2015-12-07; просмотров: 37 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.007 сек.)