С или без защиты включения в заголовках C, это все еще работает. Зачем это тогда?
Я попытался скомпилировать с защитой включения в заголовках C или без нее и убедился, что несколько файлов c содержат одинаковый заголовок. Это приведет к повторному объявлению, и это разрешено. Зачем это тогда?
1 ответ
Вы предотвращаете круговое включение:
пример
/** file A.h */
#include "B.h"
/** file B.h */
#include "A.h"
Что произойдет, если вы включите "А" или "Bh"? Ваш препроцессор попытается включить другой файл, который будет включать другой файл, который будет включать другой файл, …
Охранники следят за тем, чтобы вы не включали файл несколько раз.