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.