ExpertiDict

C · Intermediário · Inglês · Técnico

include guard

/ɪnˈklud ɡɑɹd/substantivo

Conjunto de #ifndef, #define e #endif no começo e no fim de um cabeçalho, para que seu conteúdo entre só uma vez por unidade de tradução.

Onde usar

Sem a guarda, incluir o mesmo .h por dois caminhos gera erros de redefinição de tipo. O nome da macro costuma seguir o do arquivo, como VETOR_H; #pragma once é uma alternativa não padrão.

Em código

#ifndef VETOR_H
#define VETOR_H
typedef struct { int *d, n; } Vetor;
#endif

Exemplos

This header has no include guard, so it breaks when included twice.

Esse cabeçalho não tem include guard, então quebra quando incluído duas vezes.

Name the include guard after the file.

Dê ao include guard o nome do arquivo.

Cuidado

Usar o mesmo nome de guarda em dois cabeçalhos: um deles passa a ser ignorado em silêncio.

Sinônimos

header guard, guarda de inclusão

Veja também

Todos os termos de C