Similar presentations:
Урок 7. Препроцессоры
1. Урок 7. Препроцессоры
Иван Владиславович Кашко1
2. повесточка на день
1. Разбор домашнего задания2. Препроцессоры (теория)
3. Препроцессоры (практика)
4. Обсуждаем мощно ваши проекты
5. Трещим за домашнюю работу
Иван Владиславович Кашко
2
3. Трещим про дамашку дэм
Иван Владиславович Кашко3
4. Часть 1: Директивы препроцессора
Иван Владиславович Кашко4
5.
1. Понятие препроцессораПрепроцессор — это часть компилятора, которая
обрабатывает текст программы перед её компиляцией. Он
отвечает за включение файлов, замену констант, запуск
условной компиляции. Это позволяет управлять процессом
компиляции и делать код более гибким.
Пример:
Иван Владиславович Кашко
5
6.
2. Директивы препроцессораДирективы — команды, начинающиеся с символа `#`, которые
задают инструкции для препроцессора. Они включают
подключение файлов, определение макросов, условную
компиляцию.
Пример:
Иван Владиславович Кашко
6
7.
3. Препроцессорная директива #includeДиректива `#include` подключает содержимое другого файла
в исходный код. Она облегчает повторное использование
кода и поддержку проектов. Включение происходит до
компиляции.
Пример:
Иван Владиславович Кашко
7
8.
4. Препроцессорная директива #define для создания констант`#define` создаёт макросы — постоянные значения или
фрагменты кода, которые подставляются при компиляции. Он
удобен для определения именованных констант.
Пример:
Иван Владиславович Кашко
8
9.
5. Макроопределения с параметрамиМакросы могут иметь параметры, что делает их похожими на
функции. Они позволяют вставлять параметры в макрос,
увеличивая гибкость кода.
Пример:
Иван Владиславович Кашко
9
10.
6. Условная компиляцияЭтот механизм позволяет включать или исключать части кода в
зависимости от условий, что полезно при различных
конфигурациях и платформах.
- директивы `#if` и `#else` позволяют задавать условия и
альтернативы.
- `#ifdef` и `#ifndef` проверяют наличие или отсутствие
определённых определений.
- `#undef` удаляет существующее определение.
Примеры:
Иван Владиславович Кашко
10
11. Часть 2: Многофайловые проекты
Иван Владиславович Кашко11
12.
1. Что такое многофайловый проектМногофайловый проект состоит из нескольких исходных (`.c`) и заголовочных
(`.h`) файлов, которые объединяются в одну программу. Он облегчает
организацию, поддержку и повторное использование кода.
2. Зачем нужно разделять проект на несколько файлов
Разделение позволяет структурировать проект, выделить интерфейсы и
реализации, а также ускоряет компиляцию и облегчает работу с большими
кодовыми базами.
3. Как создать многофайловый проект
Для этого создают отдельные файлы с исходным кодом и заголовки, используют
`#include` для подключения компонентов. Потом с помощью компилятора
компонуют их в единый исполняемый файл, например командой:
Иван Владиславович Кашко
12
13. Тематические вопросы:
1. Что делает директива `#define`?2. Чем отличается `#ifdef` от `#ifndef`?
3. Для чего используют `#include`?
4. Что такое многофайловый проект?
5. Почему разделение проекта на файлы удобно?
Иван Владиславович Кашко
13
14. Практическое задание:
Создайте двухфайловый проект: один файл — `main.c`, содержащийфункцию `main()`, и второй — `utils.h` и `utils.c`, где определена функция `int
add(int a, int b)`. Используйте `#include` для подключения заголовка и
вызовите функцию из `main()`. Также примените `#define` для установки
константы и `#ifdef` для условного вывода сообщения. Компилируйте
проект командой `gcc`.
Иван Владиславович Кашко
14
15. Контрольные вопросы
1.Что происходит с памятью, когдасоздается объект структуры?
2.Для чего нужно ключевое слово typedef?
3.Для чего нужны структуры в С++?
4.Что такое вложенные структуры?
Иван Владиславович Кашко
15
16. Обсуждаем мощно ваши проекты
Иван Владиславович Кашко16
17. Домашка ёу
Иван Владиславович Кашко17
programming