Objetivos
        
    
    
    
        
Diretivas de pre-processamento
    
    
        
            
                As diretivas listadas abaixo são suportadas pela linguagem C++. Clique sobre o nome da diretiva 
                para ser direcionado para sua seção.
            
            
            
                As diretivas de compilação foram vistas em 
                Tutorial C : Diretivas.
            
         
     
    
    
        
            
                A diretiva #include é utilizada para informar que nossos programas precisam utilizar recursos de 
                uma biblioteca nativa, de terceiros ou do próprio usuário.  
            
            Sintaxe
            #include <nome_recurso> //nativo
#include "nome_recurso"
            Onde
            nome_recurso: biblioteca nativa, do usuário ou outro arquivo que contém código.
            Exemplo 1
            
#include <iostream>
using namespace std;
int main()
{
    cout << "Teste!";
    return 0;
}
            Saída
            
Teste!
         
     
    
    
        
            
                Essa diretiva é usada para criar macros, constantes e renomear recursos utilizados. O assunto
                Macro será visto na próxima seção.
            
            Sintaxe
            #define nome_definicao valor
            Onde
            nome_definicao: Nome de constantes, macro ou outro.
valor: valor númerico, string ou expressão.
            Exemplo 2
            
#include <iostream>
using namespace std;
#define TESTE "Teste!"
int main()
{
    cout << TESTE;
    return 0;
}
            Saída
            
Teste!
         
     
    
    
        
            
                Essa diretiva é usada para checar se uma macro foi definida como true ou false, e 
                executar de acordo. Semelhante ao comando if.
            
            Sintaxe
            #if constante
        //trecho omitido
#endif
            Onde
            constante: constante definida utilizando #define.
            Exemplo 3
            
#include <iostream>
using namespace std;
#define TESTE 0 //0 false 1 true
int main()
{
    #if TESTE 
        cout<< "mensagem de teste";
    #endif
    
    return 0;
}
            Saída
            
mensagem de teste
         
     
    
    
        
            
                Essa diretiva é usada para checar se uma macro foi definida como true ou false e 
                executar de acordo. Caso seja true, o código do corpo #if é executado. Caso contrário, 
                o corpo do comando #else é executado. Semelhante ao comando if-else.
            
            Sintaxe
            #if constante
        //trecho omitido
#else
        //trecho omitido
#endif
            Onde
            constante: constante definida utilizando #define.
            Exemplo 4
            
#include <iostream>
using namespace std;
#define TESTE 0 //0 false 1 true
int main()
{
    #if TESTE 
        cout<< "anbiente de teste";
    #else
        cout<< "ambiente de normal";
    #endif
    
    return 0;
}
            Saída
            
ambiente de producao
         
     
    
    
        
            
                A diretiva #undef é bem simples. Essa diretiva é utilizada para desfazer um #define 
                declarado para que uma nova definição possa ser feita se necessário.
            
            Sintaxe
            #undef definicao
            Onde
            definicao: Constante ou macro criado utilizano #define.
            Exemplo 5
            
#include <iostream>
using namespace std;
int main()
{
	#define CONSTANTE 10
	cout << CONSTNATE << endl;
	#undef CONSTANTE
	#define CONSTANTE 100
	cout << CONSTANTE << endl;
}
            Saída
            
10
100
         
     
    
    
        
            
                A diretiva #ifdef checa se uma macro foi definida e executa um bloco de código de 
                acordo com resultado da checagem que retorna true ou false. Outros #defines 
                podem estar contido no bloco #ifdef.
            
            Sintaxe
            #ifdef definicao
        //#defines aqui
#endif
            Onde
            definicao: Constante ou macro criado utilizano #define.
            
                Semelhante a diretiva #if, #ifdef pode ser utilizando como a diretiva #else:
            
            Exemplo 6
            
#define DEBUG 1 
#ifdef DEBUG
    #define OUTRA_MACRO 0
#else
    #define OUTRA_MACRO1 1
    #define OUTRA_MACRO2 2
#endif
            Saída
            
-
         
     
    
    
        
            
                A diretiva #ifndef checa se uma macro não foi definida e executa um bloco de código 
                de acordo com resultado da checagem que retorna true ou false. Semelhante a #ifdef.
            
            Sintaxe
            #ifndef definicao
        //#defines aqui
#endif
            Onde
            definicao: Constante ou macro criado utilizano #define.
            
                Semelhante a diretiva #if, #ifndef pode ser utilizando como a diretiva #else:
            
            Exemplo 7
            
#define DEBUG 1 
#ifndef DEBUG
    #define DEBUG 1
#else
    #define OUTRA_MACRO 1
    #define OUTRA_MACRO2 1
#endif
            Saída
            
-
         
     
    
    
        
            
                A diretiva #error é utilizada para forçar um erro de compilação. Pode ser usada como alerta 
                para trechos de código não implementados, por exemplo. Uma mensagem é exibida pelo compilador 
                durante o processo de compilação e a compilação é encerrada.
            
            Sintaxe
            #error "mensagem"
            Onde
            mensagem: string contendo uma mensagem de erro.
            Exemplo 8
            
#include <iostream>
using namespace std;
void funcao() {
#error "Ainda falta codificar a função"
} 
int main()
{
//trecho omitido
funcao();
}
            Saída
            
-
         
     
    
    
        
            
                A diretiva warning é semelhante a diretiva #error, é utilizada para gerar 
                uma mensagem de aviso durante o processo de compilação sem o encerramento da compilação.
            
            Sintaxe
            #warning "mensagem"
            Onde
            mensagem: string contendo uma mensagem de aviso.
            Exemplo 9
            
#include <iostream>
using namespace std;
void funcao() {
#warning "Ainda falta codificar a função"
} 
int main()
{
//trecho omitido
funcao();
}
            Saída
            
-
         
     
    
        Histórico de atualizações
        
     
    
        
            
                - 29/08/2025 - revisão 4 - Ajustes em sintaxe; Correções pontuais
 
                - 28/09/2024 - revisão 3 - correções e ajustes pontuais
 
                - 30/08/2024 - revisão 2 - Correção em links de objetivos
 
                - 09/02/2024 - revisão 1 - correção em navegação,exemplo #define e erros gramaticais
 
                - 30/06/2023 - versão inicial
 
            
         
     
    
            
            
                
                    
                    Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
                em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.