C++ · Essencial · Inglês · Técnico
include guard
Macros de pré-processador #ifndef, #define e #endif que impedem que o mesmo header seja processado duas vezes na mesma unidade de tradução.
Onde usar
Sem guarda, incluir o header por dois caminhos gera erros de redefinição de classe. Muitos projetos usam #pragma once, que não é padrão, mas é aceito pelos compiladores principais.
Em código
#ifndef MEUAPP_PONTO_H
#define MEUAPP_PONTO_H
struct Ponto { int x, y; };
#endif // MEUAPP_PONTO_HExemplos
Without an include guard, this header gets pulled in twice and breaks the build.
Sem include guard, esse header entra duas vezes e quebra o build.
We just use pragma once instead of a manual include guard.
A gente só usa pragma once em vez de um include guard manual.
Cuidado
Dois headers com o mesmo nome de macro de guarda fazem um deles ser ignorado em silêncio.
Sinônimos
guarda de inclusão