|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Функции. Объявления, вызов, передача параметров в функциюФункция представляет собой именованное объединение группы операторов. Это объединение может быть вызвано из других частей программы. Деление программы на функции является базовым принципом структурного программирования (однако объектно-ориентированный подход является более мощным принципом организации программы). Причиной, из-за которой в свое время была создана концепция функций, стало стремление сократить размер программного кода. Любая последовательность операторов, встречающаяся в программе более одного раза, будучи вынесенной в отдельную функцию, сокращает размер программы. Несмотря на то, что функция в процессе выполнения программы исполняется не один раз, ее код хранится только в одной области памяти. Есть два способа описать функцию: объявить или определить функцию до первого ее вызова. Здесь мы рассмотрим только объявление функции. В программе TABLE объявление функции starline() выглядит следующим образом: void starline(); Объявление функции означает, что где-то ниже в листинге программы будет содержаться код этой функции. Ключевое слово void указывает на то, что функция не возвращает значения, а пустые скобки говорят об отсутствии у функции передаваемых аргументов (для того чтобы явно показать отсутствие аргументов у функции, вы можете поместить внутрь скобок слово void; такая практика часто применяется в языке C, однако в C++ чаще оставляют скобки пустыми). Объявление функции заканчивается точкой с запятой (;) и на самом деле является обычным оператором. Объявления функций также называют прототипами функций, поскольку они являются неким общим представлением или описанием функций. Прототип говорит компилятору о том, что «функция, имеющая данные атрибуты, будет написана позже, и можно вызывать эту функцию до того, как будет обнаружен ее код». Информацию о функции, содержащуюся в ее объявлении (тип возвращаемого значения, а также число и типы аргументов функции) также иногда называют сигнатурой функции. Для того чтобы вызвать функцию, нам понадобятся только имя функции и круглые скобки: starline();. Вызов функции внешне очень похож на прототип; разница заключается лишь в том, что при вызове не указывается тип возвращаемого значения. Вызов функции завершается точкой с запятой (;). Выполнение оператора вызова функции инициирует выполнение самой функции. Это означает, что управление передается операторам функции, которые после своего выполнения, в свою очередь, передают управление оператору, следующему за вызовом функции. Передача аргументов в функцию Аргументом называют единицу данных (например, переменную типа int), пере- даваемую программой в функцию. Аргументы позволяют функции оперировать различными значениями или выполнять различные действия в зависимости от переданных ей значений. Переменные, используемые внутри функции для хранения значений аргументов, называются параметрами. Пример. Новая функция называется repchar(). Ее прототип выглядит следующим образом: void repchar(char, int); //объявление с указанием типов аргументов. В скобках указаны типы данных, которые будут иметь передаваемые в функцию аргументы: char и int. При вызове функции вместо аргументов в скобках указываются их значения: repchar(char a, int b);
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |