C · Intermediário · Português · Técnico
compilação condicional
Uso de #if, #ifdef, #ifndef, #else e #endif para incluir ou excluir trechos do código conforme macros definidas, sem que o trecho excluído chegue ao compilador.
Onde usar
Serve para código específico de plataforma e para ligar logs de depuração com -DDEBUG. Em excesso, deixa o código difícil de ler e de testar em todas as combinações.
Em código
#ifdef DEBUG
#define LOG(m) fprintf(stderr, "%s\n", m)
#else
#define LOG(m) ((void)0)
#endifExemplos
Usei compilação condicional para o código que só roda no Windows.
Compile com -DDEBUG para ligar a compilação condicional dos logs.
Cuidado
Usar #if para esconder código quebrado: o trecho excluído nunca é verificado e apodrece.
Sinônimos
#ifdef