Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Entender a diretiva #if
  2. Entender a diretiva #if-#else
  3. Entender a diretiva #ifdef

A linguagem C fornece as diretivas #if para situações em que precisamos verificar se uma determinada diretiva foi definida e decidir o que fazer em seu corpo. Essa diretiva finalizada por #endif.

Sintaxe
#if nome_macro
    //corpo #if
#endif
Exemplo 1
#include <stdio.h>
#define DEBUG 1

int main()
{
    #if DEBUG
        printf("mensagem de debug");
    #endif
}
Saída
mensagem de debug

De forma semelhante ao comando if-else, a diretiva #if-#else deve ser utilizada quando precisamos decidir o que fazer caso uma determinada #define foi declarada ou não.Essa diretiva finalizada por #endif.

Sintaxe
#if nome_macro
    //corpo #if
#else
    //corpo #else
#endif
Exemplo 2
#include <stdio.h>
#define DEBUG 1

int main()
{
    #if DEBUG
        prinft("mensagem de debug");
    #else
	    printf("mensagem de produção");
    #endif
}
Saída
mensagem de debug

A diretiva #ifdef permite verificar se uma determinada definição foi declarada ou se um arquivo .h foi incluído. Essa diretiva é iniciada por #ifdef e terminada com #endif, podendo possuir #else em seu corpo.

Sintaxe
#ifdef definicao
    //#defines aqui
#else
    //#defines aqui
#endif
Exemplo 3
#include <stdio.h>
#define DEBUG 1

#ifdef DEBUG
    #define DEBUG2 2
#else
    #define DEBUG3 3
#endif

int main()
{
#if DEBUG
    printf("mensagem de debug\n");
#endif

#if DEBUG2
    printf("mensagem de debug2");
#endif
}
Saída
mensagem de debug
mensagem de debug2
  1. 11/03/2025 - revisão 4 - Ajustes pontuais
  2. 07/10/2024 - revisão 3 - Ajustes pontuais
  3. 30/08/2024 - revisão 2 - Correção em links de objetivos
  4. 29/09/2023 - revisão 1 - Correção em referências, erros gramaticais e adição de #if-#else
  5. 19/05/2023 - versão inicial