Из урока 9 вы узнали, как разделить ваши программы на небольшие легко управляемые части, называемые функциями и выполняющие определенную задачу. Одно из преимуществ использования функций заключается в том, что вы можете часто применяемую функцию, созданную для одной программы, использовать в другой программе. Как вы узнаете из этого урока, большинство компиляторов C++ обеспечивают широкий набор функций, использующихся в программах и называющихсябиблиотекой этапа выполнения. Применение этих функций сокращает объем программирования, который вы должны выполнить самостоятельно. Вместо этого ваша программа просто вызывает функции библиотеки этапа выполнения. В зависимости от компилятора библиотека этапа выполнения может состоять из тысяч функций. В данном уроке описывается использование таких функций в ваших программах. К тому времени, когда вы закончите этот урок, вы освоите следующие основные концепции:

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

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

• Некоторые компиляторы обращаются к библиотеке этапа выполнения как к интерфейсу прикладных программ или API.

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

ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ БИБЛИОТЕКИ ЭТАПА ВЫПОЛНЕНИЯ

Из урока 9 вы узнали, что до того, как ваши программы смогут вызвать функцию, компилятор C++ должен узнать определение или прототип функции. Поскольку функции библиотеки этапа выполнения не определены в вашей программе, вы должны указать прототип для каждой библиотечной функции, которую намерены использовать. Для упрощения использования библиотечных функций компилятор C++ предоставляет заголовочные файлы, содержащие корректные прототипы. Таким образом, вашим программам необходимо просто включить требуемый заголовочный файл с помощью оператора #include, а затем вызвать необходимую функцию. Например, следующая программа SHOWTIME.CPP будет использовать функции библиотеки этапа выполнения time и ctime для вывода текущей системной даты и времени. Прототипы этих двух функций библиотеки этапа выполнения содержатся в заголовочном файлеtime.h:

#include
#include // Для функций библиотеки этапа выполнения

void main(void)

{
   time_t system_time;
   system_time = time(NULL);
   cout << "Текущее системное время " << ctime(&system_time) << endl;
}

Когда вы откомпилируете и запустите эту программу, на вашем экране появятся текущие системные дата и время:

С:> SHOWTIME  

Текущее системное время Mon Jan 01 16:13:51 1996

Как видите, программа использует функцииtime иctime. В случае функцииctime программа передает адрес переменнойsystem_time, используя оператор адреса, описанный в уроке 10. Для использования этих функций вам просто следует включить заголовочный файлtime.h в начало вашего исходного файла.

Подобным образом следующая программа SQRT.CPP использует функцию sqrt для возврата квадратного корня нескольких значений. Прототип функции sqrt находится в заголовочном файлеmath.h:

#include
#include // Содержит прототип sqrt

void main(void)

{
   cout << "квадратный корень 100.0 равен " << sqrt(100.0) << endl;
   cout << "Квадратный корень 10.0 равен " << sqrt (10.0) << endl;
   cout << "квадратный корень 5.0 равен " << sqrt(5.0) << endl;
}

Наконец, программа SYSCALL.CPP использует функциюsystem, прототип которой определяется в заголовочном файлеstdlib.h. Функцияsystem обеспечивает легкий способ выполнения вашей программой команды операционной системы, такой как"DIR", или другой программы:

#include

void main(void)

{
   system("DIR");
}

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

ИЗУЧЕНИЕ ФУНКЦИЙ БИБЛИОТЕКИ ЭТАПА ВЫПОЛНЕНИЯ

Ваш компилятор C++ обеспечивает сотни функций библиотеки этапа выполнения. Документация, поставляемая с вашим компилятором, должна содержать полное описание всех функций библиотеки этапа выполнения. Если вы просмотрите эту документацию, то найдете, что функции обычно используют простые прототипы. Например, для функцииsqrt вы могли бы найти следующий прототип:

double sqrt(double);

В данном случае прототип функции сообщает вам, что функция возвращает значение типаdouble и ожидает параметр тоже типаdouble. Аналогично этому можно найти следующий прототип для функцииtime:

time_t time (time_t *);

И опять прототип сообщает вам, что функция возвращает значение типа time_t (этот тип определен в заголовочном файлеtime.h). Функция ожидает, что ее параметр должен быть указателем на переменную типаtime_t. По мере чтения документации о функциях библиотеки этапа выполнения вы очень много узнаете о самих функциях и о C++ , при этом обращайте внимание на прототипы функций.

Другой путь изучения библиотечных функций вашего компилятора состоит в просмотре заголовочных файлов, содержащихся в подкаталоге INCLUDE. Выделите время, например, для того, чтобы сейчас распечатать заголовочные файлыmath.h, time.h иstdlib.h, которые вы использовали в программах этого урока.

Использование функций API

В дополнение к стандартной библиотеке этапа выполнения многие компиляторы обеспечивают функции API или интерфейс прикладных программ. Например, если вы программируете в среде Windows, то вам потребуются функции графического API, телефонного API (TAPI), API для мультимедиа и т. д. Прежде чем создавать свои собственные функции, убедитесь, что вы не нашли таких функций в API, предоставляемом вашим компилятором.

ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ

Библиотека этапа выполнения C++ предоставляет мощный набор функций, которые вы можете использовать в ваших программах. Не жалейте времени, чтобы изучить документацию по библиотеке этапа выполнения, поставляемой с вашим компилятором. Выясните смысл функций, имеющихся в библиотеке этапа выполнения. Преимущество этих функций состоит в том, что вы избавляетесь от значительного объема программирования. В уроке 12 вы научитесь обращаться с локальными переменными и областью видимости (участок вашей программы, где известно имя переменной). Прежде чем перейти к уроку 12, убедитесь, что вы освоили следующие основные концепции:

    1. Библиотека этапа выполнения представляет собой набор функций, обеспечиваемых компилятором для ваших программ.
    2. Для использования функции из библиотеки этапа выполнения вы должны указать ее прототип.
    3. Большинство компиляторов C++ предоставляют заголовочные файлы, которые содержат корректные прототипы для каждой библиотечной функции.
    4. В дополнение к библиотеке этапа выполнения многие компиляторы C++ предоставляют функции API (интерфейс прикладных программ) для выполнения определенных задач, например программирования графики или мультимедиа.