Структура программы C++
Программа на языке С/С++ состоит из:
Общую структуру программы на языке С/С++ можно представить следующим образом: Директивы препроцессора – определяют действия по преобразованию программы перед компиляцией, а также включают инструкции, которым компилятор следует во время компиляции;
Объявления – описания переменных, функций, структур, классов и типов данных;
Описание функций, выполняемых в проекте. В языке С++ существует только один вид подпрограмм – подпрограмма-функция.
Функция состоит из заголовка и тела функции.
Заголовок состоит из:
имя_функции – имя, с которым можно обращаться к этой функции;
параметры – список её аргументов (может отсутствовать).
Точка с запятой (;) является разделителем между описаниями и операторами.
Препроцессор – это программа, действующая как фильтр на этапе компиляции.
Исходная программа => Препроцессор => Расширенная исходная программа => Компилятор
Перед тем, как попасть на вход компилятора, исходная программа проходит через препроцессор.
Основному тексту программы предшествуют директивы препроцессора (preprocessor directive), которые начинаются с символа решётки #, не являются выражением языка С++ (и потому не заканчивается точкой с запятой).
Команды (директивы) препроцессора представляют собой инструкции, записанные в исходном тексте программы, используемые для того, чтобы облегчить модификацию программ и сделать их независимыми от особенностей различных реализаций компилятора.
Например: Директивы могут быть записаны в любом месте исходного файла, но их действие распространяется только от точки программы, в которой они записаны, до конца исходного файла.
Файлы, которые появляются в директивах, обычно заканчиваются на .h, что означает файл заголовков (header file). Файлы заголовков содержат объявления констант, переменных и функций, необходимы для работы программы.
Эта директив имеет две формы записи: В случае, когда имя_включаемого_файла (файла включений) записывается в угловых кавычках, то поиск этого файла осуществляется в стандартных системных каталогах (каталоге подключаемых файлов (include directory), то есть в месте, где компьютерная система хранит все доступные для использования файлы заголовков).
Например: Если же имя_включаемого_файла указано в кавычках, то сначала поиск осуществляется в текущем каталоге и лишь затем в системных. Имя_включаемого_файла может также содержать полный путь для его поиска, что наблюдается редко, так как это предполагает жёсткую связь программы с конфигурацией файловой системы конкретной ЭВМ.
Пример:
Удобно использовать для объявления и определения констант, когда одно и то же значение (например, длина массива) используется в разных местах программы. Например: В результате препроцессорной обработки получится следующий текст программы: Изменив значение lin_arr на любое другое только в директиве #define, автоматически изменятся и длина массива, и условие окончания цикла.
Также удобно использовать директиву #define для определения и описания функций (func - функция, выбирающая минимальное из двух чисел):
На экран будет выведено: 4.5
Директива #undef отменяет действие идентификаторов, определенных директивой #define: Например: После препроцессорной обработки фрагмент будет иметь вид:
- Директив процессора
- Описаний
- Функций
Общую структуру программы на языке С/С++ можно представить следующим образом: Директивы препроцессора – определяют действия по преобразованию программы перед компиляцией, а также включают инструкции, которым компилятор следует во время компиляции;
Объявления – описания переменных, функций, структур, классов и типов данных;
Описание функций, выполняемых в проекте. В языке С++ существует только один вид подпрограмм – подпрограмма-функция.
Функция состоит из заголовка и тела функции.
Заголовок состоит из:
- Типа результата, возвращаемого функцией;
- Имени функции;
- Списка параметров, необходимых для выполнения функции.
Тело функции заключается в операторные скобки {}, и содержит описание локальных данных и операторы функции.
где,
тип_результата – это тип того значения, которое функция должна вычислить (если функция не должна возвращать значение, указывается тип void);имя_функции – имя, с которым можно обращаться к этой функции;
параметры – список её аргументов (может отсутствовать).
Точка с запятой (;) является разделителем между описаниями и операторами.
Директивы процессора
Понятие препроцессора является одним из ключевых в языке С++.Препроцессор – это программа, действующая как фильтр на этапе компиляции.
Исходная программа => Препроцессор => Расширенная исходная программа => Компилятор
Перед тем, как попасть на вход компилятора, исходная программа проходит через препроцессор.
Основному тексту программы предшествуют директивы препроцессора (preprocessor directive), которые начинаются с символа решётки #, не являются выражением языка С++ (и потому не заканчивается точкой с запятой).
Команды (директивы) препроцессора представляют собой инструкции, записанные в исходном тексте программы, используемые для того, чтобы облегчить модификацию программ и сделать их независимыми от особенностей различных реализаций компилятора.
Например: Директивы могут быть записаны в любом месте исходного файла, но их действие распространяется только от точки программы, в которой они записаны, до конца исходного файла.
Файлы, которые появляются в директивах, обычно заканчиваются на .h, что означает файл заголовков (header file). Файлы заголовков содержат объявления констант, переменных и функций, необходимы для работы программы.
Директива #include
Директива препроцессора #include позволяет включать в текст программы, написанной программистом, тексты других программ.Эта директив имеет две формы записи: В случае, когда имя_включаемого_файла (файла включений) записывается в угловых кавычках, то поиск этого файла осуществляется в стандартных системных каталогах (каталоге подключаемых файлов (include directory), то есть в месте, где компьютерная система хранит все доступные для использования файлы заголовков).
Например: Если же имя_включаемого_файла указано в кавычках, то сначала поиск осуществляется в текущем каталоге и лишь затем в системных. Имя_включаемого_файла может также содержать полный путь для его поиска, что наблюдается редко, так как это предполагает жёсткую связь программы с конфигурацией файловой системы конкретной ЭВМ.
Пример:
Директивы #define, #undef
Директива препроцессора #define позволяет заменять все вхождения указанного идентификатора какой-то определенной последовательностью символов.Удобно использовать для объявления и определения констант, когда одно и то же значение (например, длина массива) используется в разных местах программы. Например: В результате препроцессорной обработки получится следующий текст программы: Изменив значение lin_arr на любое другое только в директиве #define, автоматически изменятся и длина массива, и условие окончания цикла.
Также удобно использовать директиву #define для определения и описания функций (func - функция, выбирающая минимальное из двух чисел):
На экран будет выведено: 4.5
Директива #undef отменяет действие идентификаторов, определенных директивой #define: Например: После препроцессорной обработки фрагмент будет иметь вид:
Комментарии
Отправить комментарий