Usina BRAdvPL Guia
Entrar
← Todos os tópicos
DIRETIVAPublicado

#ifdef

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

Inclui um trecho na compilação somente quando determinado identificador estiver definido.

Compilação condicionalPré-processadorAmbientes
01 · VISÃO GERAL

Visão geral

#ifdef testa, durante o pré-processamento, a existência de um símbolo criado por #define ou fornecido pelo ambiente. O bloco aceito segue para o compilador; o bloco rejeitado não participa do objeto final.

02 · SINTAXE

Sintaxe

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

Código condicionado a um símbolo

#define AMBIENTE_HOMOLOGACAO

User Function ExIfDef()
#ifdef AMBIENTE_HOMOLOGACAO
    MsgInfo("Compilação de homologação")
#else
    MsgInfo("Compilação padrão")
#endif
Return
Resultado esperado

Apenas um dos dois blocos entra no objeto compilado.

BOAS PRÁTICAS
  • A decisão ocorre na compilação, não quando o usuário executa a rotina.
  • Use #else para a alternativa e sempre encerre com #endif.
ARMADILHAS COMUNS
  • Não utilize símbolos de compilação como substitutos de configuração operacional que precisa mudar sem recompilar.
  • Evite criar muitas variantes do mesmo fonte; elas aumentam a matriz de testes.

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