Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Целочисленные типы.docx
Скачиваний:
6
Добавлен:
01.08.2019
Размер:
41.48 Кб
Скачать
  1. Функции. Примеры.

В языке программирования С нет понятия подпрограммы или процедуры, как это есть в языках Basic или Pascal. Роль подпрограмм здесь выполняют функции. Что же такое функция в С ?    Это важнейшая конструкция языка. Такая же по важности, если не более важная конструкция, как константы, переменные, строки и массивы. Это вполне самостоятельная и вполне независимая единица программы.    Еще о функциях в С говорят: функция - это минимальная исполняемая конструкция или некий очень нужный программисту блок команд. С помощью таких блоков или кирпичиков языка могут создаваться другие построения. Я имею в виду сложные программы. То есть функция - это своеобразный строительный материал. Это минимальный программируемый набор команд, который принято называть блоком или модулем. Такие наборы блоков нужны почти для всякой программы на С. Функции выполняют определенные законченные наборы действий, команд и операций. Поэтому смело можно сказать, что функции создаются для решения этих конкретных маленьких или элементарных, простейших задач, на которые можно мысленно расчленить любую задачу. Как правило, такие простейшие задачи часто возникают во многих реальных задачах.    Потому, написав однажды модуль функции (то есть определенную группу команд для решения этой элементарной задачи), мы как бы потом по кусочкам собираем свою задачу из этих уже готовых строительных блоков: кирпичиков-функций. Таким образом, мы видим, что функции в значительной мере имеют универсальный характер использования. Они создаются, чтобы использоваться во многих программах и облегчить и ускорить работу программиста, обеспечить решение распространенных подзадач, из которых программист может строить программу своей новой задачи.    Существуют правила для создания функций в языке С. По соглашению или вернее согласно стандарту языка С каждая функция имеет специальное имя и список аргументов, записываемых в скобках после имени функции. Ниже приводится общепринятый единый формат определения для функции: тип имя_функции(список_спецификаций_параметров) тело_функции Первая строка называется заголовком функции. Обратите внимание на то, что после заголовка не ставится точка с запятой. В заголовкес обязательно присутствуют имена формальных параметров. Здесь "тип" это либо void, если функция не возвращает значение, или "тип" возвращаемого функцией значения.    Здесь уместно вспомнить, что в С существует 5 базовых типов данных:

  • char - символьный тип;

  • int - целый тип;

  • float - тип данных с плавающей точкой;

  • double - тип данных с плавающей точкой удвоенной длины;

  • viod - пустой тип, не имеющий никакого значения.

Поэтому функции, возвращающие значения базовых типов, будут иметь то же тип. Упомянутые 5 типов и модификаторы типов позволяют построить новые типы данных. В стандарте ANSI модификаторами служат:

  • signed - знаковый;

  • unsigned - беззнаковый;

  • long - длинный;

  • short - короткий.

Модификаторы signed и unsigned могут применяться к типам char и int. Модификаторы short и long могут применяться к типу int. Модификатор long может применяться так же к типу double. Модификаторы signed и unsigned могут комбинироваться с модификаторами short и long в применении к типу int. Это нужно хорошо помнить, чтобы правильно задавать тип соответствующей функции. Теперь остановимся на именах функций. Имя функции "main" используется для обозначения главной (основной) функции программы. Для других функций имя выбирается совершенно произвольно. Главное, чтобы оно не совпадало со служебными словами и с именами, использованными в программе для обозначения других объектов и функций. То есть имена функций должны быть уникальными, неповторимыми. Список аргументов в скобках или отсутствует или представляет собой список формальных параметров, имеющих вид: обозначение_типа имя_параметра    Список параметров функции может заканчиваться запятой с последующим многоточием. Многоточие обозначает возможность обращаться к функции с изменяющимся количеством параметров. Например, в уже известных нам функциях "int printf" и "int scanf", выполняющих форматированный вывод и форматированный ввод, может быть неограниченное количество фактических параметров.    Тело функции - это неотъемлемая часть определения функции. Оно ограничивается фигурными скобками и непосредственно размещается вслед за заголовком функции. Тело функции может быть либо составным оператором, либо блоком. Блок включает определения объектов: переменных, массивов и так далее.    Особенностью языка С является невозможность определять внутри своего тела другую функцию. То есть не допускаются вложенные оперделения.    Обязательным, но не всегда используемым является оператор возврата из функции: return; return выражение; Первый случай соответствует функции, не возвращающей никакого значения. Перед именем такой функции указывают тип "void". В другом случае выражение после оператора "return" должно иметь тот же тип, который указан перед именем функции в ее определении, либо допускать преобразование к типу возвращаемого функцией значения. Однако программист может явно не использовать оператор "return" в теле функции, возвращающей значение типа "viod", то есть ничего не возвращающей. В этом случае, однако, компилятор сам добавит "return" в конец тела функции перед закрывающей скобкой.    Таким образом, мы изучили особенности программирования функций и узнали, что в языке С допустимы функции с параметрами и без параметров, функции, возвращающие значения, и ничего не возвращающие.    Отметим в завершение урока, что в С допускается использовать и такое определение функции: тип имя_функции(список_параметров) спецификация_параметров; тело_функции