Это охранник. Это гарантирует, что заголовок включен не более одного раза.
Например, если вы:
#include "example.h"
#include "example.h"
При первом включении заголовка EXAMPLE_H_
не будет определен, и будет введен блок if. EXAMPLE_H_
определяется директивой #define
, и содержимое заголовка оценивается.
Во второй раз, когда заголовок включен, EXAMPLE_H_
уже определен, поэтому блок if не вводится повторно.
Это важно, чтобы гарантировать, что вы не нарушаете одно правило определения. Если вы определяете класс в заголовке, который не имеет элементов защиты и дважды включает этот заголовок, вы получите ошибки компиляции из-за нарушения одного правила определения (класс будет определен дважды).
Хотя приведенный выше пример тривиален и вы можете легко увидеть, что вы включаете example.h
дважды, часто заголовки включают другие заголовки, и это не так очевидно.