В одном из предыдущих уроков о предварительных объявлениях мы говорили, что у идентификатора может быть только одно определение. А что будет, если записать два определения одной переменной? А как вы думаете? Ошибка будет, ошибка компиляции. И называется она дублированием определений.

Вот чтобы избежать возникновения подобных ошибок и были созданы header guards (в переводе - “охранники заголовков”). Это директивы условной компиляции, которые выглядят следующим образом:
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// ваши объявления и определения здесь #endif
Если вы, работая в IDE, подключите этот заголовок в свой проект, то первым делом файл проверит, был ли ранее определен идентификатор SOME_UNIQUE_NAME_HERE. Если поиски не дадут результатов, то мы сами #define (определяем) SOME_UNIQUE_NAME_HERE, а затем пишем основной код заголовочного файла. А вот если в проекте уже существует (подключен раньше) этот заголовочный файл, то получится, что SOME_UNIQUE_NAME_HERE уже был определен. Таким образом, при повторном подключении заголовочного файла, всё его содержимое будет игнорироваться.
Во всех заголовках должны быть header guards. Вместо SOME_UNIQUE_NAME_HERE вы можете использовать и любой другой идентификатор, который только захотите, но принято использовать в качестве идентификатора название заголовочного файла с приставкой _H. Например, в math.h…
Это интересно
+2
|
|||

Последние откомментированные темы:
-
Лучший чат-бот с искусственным интеллектом - какой из них вам подходит?
(1)
boris 1
,
13.01.2022
-
Новогоднее украшение рабочего стола ПК
(1)
Елена2022
,
21.12.2021
-
Как JPG преобразовать в Word с распознаванием текста
(1)
Olejaweb
,
13.11.2021
-
Как вернуть классическое ленточное меню в проводник Windows 11
(1)
Сергей Михайлов сын
,
26.10.2021
20251119005249