ExpertiDict

C++ · Essencial · Inglês · Técnico

include guard

ɪnˈkluːd ɡɑːrdsubstantivo

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_H

Exemplos

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

Veja também

Todos os termos de C++