Usina BRAdvPL Guia
Entrar
← Todos os tópicos
DIRETIVAPublicado

#ifndef

#ifndef <identificador> ... [#else ...] #endif

Inclui um trecho somente quando determinado identificador ainda não estiver definido.

Compilação condicionalValores padrãoPré-processador
01 · VISÃO GERAL

Visão geral

#ifndef é o inverso de #ifdef. Ele é especialmente útil em proteções de cabeçalho e valores padrão: o bloco é mantido somente quando o símbolo consultado não existe naquele ponto do pré-processamento.

02 · SINTAXE

Sintaxe

#ifndef <identificador> ... [#else ...] #endif
03 · EXEMPLO PRÁTICO

Valor padrão protegido

#ifndef BANCO_DADOS_PADRAO
    #define BANCO_DADOS_PADRAO "MSSQL"
#endif

User Function ExIfNDef()
    ConOut("Banco padrão: " + BANCO_DADOS_PADRAO)
Return
Resultado esperado

MSSQL é definido somente se nenhuma definição anterior estiver ativa.

BOAS PRÁTICAS
  • Use para fornecer uma definição padrão sem sobrescrever uma definição anterior.
  • Sempre encerre o bloco com #endif.
ARMADILHAS COMUNS
  • Um valor padrão de compilação fica incorporado ao objeto; alterá-lo exige nova compilação.
  • Não confunda ausência de símbolo com valor lógico falso.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. #define. TDN. Última alteração em 22 mar. 2019.
  2. TOTVS. Diretivas para o compilador. TDN.
  3. TOTVS. #ifdef. TDN.
  4. TOTVS. #ifndef. TDN.
  5. TOTVS. #include. TDN.
  6. TOTVS. #undef. TDN.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR