Как MYHEADER_HPP в защите заголовка относится к реальному имени файла "MyHeader.hpp" - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь научить себя C ++, и одна маленькая деталь, которую я не понимаю, продолжает меня беспокоить. Я понимаю необходимость защиты заголовков, но не понимаю точного синтаксиса. Например. Если у меня есть заголовочный файл с именем MyHeader.hpp, и я хотел бы включить его без охраны, я бы написал

#include "MyHeader.hpp"

Однако все учебники, на которые я смотрел, указывают на способ сделать это с помощью охранников. было бы что-то вроде

#ifndef MYHEADER_HPP
#define MYHEADER_HPP

Мой вопрос: как MYHEADER_HPP в определении # ifndef / # соответствует действительному имени файла "MyHeader.hpp" в исходном операторе включения?

Спасибо

1 Ответ

2 голосов
/ 31 марта 2020

Вы можете использовать все что угодно, и это даст тот же результат. Обратите внимание: если вы используете одно и то же имя в двух разных файлах, у вас возникнет проблема, если вы попытаетесь включить оба в одну и ту же единицу перевода.

Очень простой способ избежать этого использовать защиту заголовков, соответствующую именам файлов.

...