С или без защиты включения в заголовках C, это все еще работает. Зачем это тогда?

Я попытался скомпилировать с защитой включения в заголовках C или без нее и убедился, что несколько файлов c содержат одинаковый заголовок. Это приведет к повторному объявлению, и это разрешено. Зачем это тогда?

1 ответ

Вы предотвращаете круговое включение:

пример

/** file A.h */
#include "B.h"
/** file B.h */
#include "A.h"

Что произойдет, если вы включите "А" или "Bh"? Ваш препроцессор попытается включить другой файл, который будет включать другой файл, который будет включать другой файл, …

Охранники следят за тем, чтобы вы не включали файл несколько раз.

Другие вопросы по тегам