Отправляет email-рассылки с помощью сервиса Sendsay
←  Предыдущая тема Все темы Следующая тема →
пишет:

Уроки по C++. Header guards

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

Вот чтобы избежать возникновения подобных ошибок и были созданы 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…

 

О header guards дальше.

Вступите в группу, и вы сможете просматривать изображения в полном размере

Это интересно
0

05.03.2017
Пожаловаться Просмотров: 196  
←  Предыдущая тема Все темы Следующая тема →


Комментарии временно отключены