Структура программы C++

Программа на языке С/С++ состоит из:
  1. Директив процессора
  2. Описаний
  3. Функций
Главная функция носит имя main и должна быть обязательно.
Общую структуру программы на языке С/С++ можно представить следующим образом: Директивы препроцессора – определяют действия по преобразованию программы перед компиляцией, а также включают инструкции, которым компилятор следует во время компиляции;
Объявления – описания переменных, функций, структур, классов и типов данных;
Описание функций, выполняемых в проекте. В языке С++ существует только один вид подпрограмм – подпрограмма-функция.
Функция состоит из заголовка и тела функции.
Заголовок состоит из:
  1. Типа результата, возвращаемого функцией;
  2. Имени функции;
  3. Списка параметров, необходимых для выполнения функции.
Тело функции заключается в операторные скобки {}, и содержит описание локальных данных и операторы функции.
где, тип_результата – это тип того значения, которое функция должна вычислить (если функция не должна возвращать значение, указывается тип void);
имя_функции – имя, с которым можно обращаться к этой функции;
параметры – список её аргументов (может отсутствовать).
Точка с запятой (;) является разделителем между описаниями и операторами.

Директивы процессора

Понятие препроцессора является одним из ключевых в языке С++.
Препроцессор – это программа, действующая как фильтр на этапе компиляции.
Исходная программа => Препроцессор => Расширенная исходная программа => Компилятор
Перед тем, как попасть на вход компилятора, исходная программа проходит через препроцессор.

Основному тексту программы предшествуют директивы препроцессора (preprocessor directive), которые начинаются с символа решётки #, не являются выражением языка С++ (и потому не заканчивается точкой с запятой).

Команды (директивы) препроцессора представляют собой инструкции, записанные в исходном тексте программы, используемые для того, чтобы облегчить модификацию программ и сделать их независимыми от особенностей различных реализаций компилятора.
Например: Директивы могут быть записаны в любом месте исходного файла, но их действие распространяется только от точки программы, в которой они записаны, до конца исходного файла.
Файлы, которые появляются в директивах, обычно заканчиваются на .h, что означает файл заголовков (header file). Файлы заголовков содержат объявления констант, переменных и функций, необходимы для работы программы.

Директива #include

Директива препроцессора #include позволяет включать в текст программы, написанной программистом, тексты других программ.
Эта директив имеет две формы записи: В случае, когда имя_включаемого_файла (файла включений) записывается в угловых кавычках, то поиск этого файла осуществляется в стандартных системных каталогах (каталоге подключаемых файлов (include directory), то есть в месте, где компьютерная система хранит все доступные для использования файлы заголовков).
Например: Если же имя_включаемого_файла указано в кавычках, то сначала поиск осуществляется в текущем каталоге и лишь затем в системных. Имя_включаемого_файла может также содержать полный путь для его поиска, что наблюдается редко, так как это предполагает жёсткую связь программы с конфигурацией файловой системы конкретной ЭВМ.
Пример:

Директивы #define, #undef

Директива препроцессора #define позволяет заменять все вхождения указанного идентификатора какой-то определенной последовательностью символов.
Удобно использовать для объявления и определения констант, когда одно и то же значение (например, длина массива) используется в разных местах программы. Например: В результате препроцессорной обработки получится сле­дующий текст программы: Изменив значение lin_arr на любое другое только в директиве #define, автоматически изменятся и длина массива, и условие окончания цикла.
Также удобно использовать директиву #define для опре­деления и описания функций (func - функция, выбирающая ми­нимальное из двух чисел):
На экран будет выведено: 4.5
Директива #undef отменяет действие идентификаторов, определенных директивой #define: Например: После препроцессорной обработки фрагмент будет иметь вид:

Комментарии

Популярные сообщения