Я создаю свой собственный проект терминального приложения на C ++ и спрашиваю себя, есть ли в стандартной библиотеке инструкции препроцессоров ifdef или ifndef. Я хочу знать, что, поскольку мне нужно создавать разные файлы заголовков, для которых нужны некоторые заголовки стандартной библиотеки, такие как «строка» и некоторые другие, я не хочу включать одну и ту же библиотеку 3 или более раз, потому что это делает программу тяжелее. < br /> Например, я написал в своих заголовочных файлах что-то вроде этого, чтобы предотвратить включение файла .h более одного раза:
#ifndef myheader_h
#define myheader_h
// my file code here
#endif
Я попытался скомпилировать, но компилятор ничего не сказал мне об ошибках или предупреждениях.
Я также попытался прочитать исходный код стандартной библиотеки (https://en.cppreference.com/w/cpp/header) и я не нашел ни одного правила препроцессора, такого как ifdef или ifndef.
Стоит ли включать стандарт такие заголовки библиотеки?
#ifndef string_h
#define string_h
#include <string>
#endif
Надеюсь, мой вопрос еще не задан, потому что я не нашел его во время поиска.
Обновления
Для тех, кто сказал «вы не в том положении, о котором вам нужно беспокоиться» и кто сказал «это стоит очень мало, если у него есть надлежащая защита», я означало: важна тяжесть программы, я хочу сделать ее более легкой, поэтому не хочу полностью включать один и тот же файл несколько раз. Имеют ли файлы std lib собственно охранники? (у моих файлов заголовков они есть, я не знал файлов std lib)
<string>
уже включает такую же (или похожую) конструкцию. Самостоятельно писать еще один не нужно. - person HolyBlackCat   schedule 13.08.2018