Урок 9.1. Виды функций

9.1. Виды функций

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

Что такое функция? Функция – самостоятельная поименованная единица программы, реализующая конкретную задачу. Функции языка Си играют ту же роль, что и функции, процедуры и подпрограммы в других языках программирования. Они повышают уровень модульности программы, облегчают ее чтение, внесение изменений и коррекцию ошибок и, самое главное облегчают разработку алгоритмов решения задачи, позволяя разбивать её нa подалгоритмы (функции). (англ. subprogram, subroutine, function)

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

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

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

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

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

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

 Прототипы библиотечных функций содержатся, как правило, в заголовочных (header) файлах и включаются в программой директивой препроцессора include.

 Файл, содержащий программу, которая подлежит трансляции, будем называть файлом трансляции.

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

рассказать друзьям и получить подарок

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Translate Переводчик

Подписка на новости

SmartResponder.ru
Ваш e-mail: *
Ваше имя: *

Хостинг для Wordpress сайтов