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

  1. Entender a diretiva #error
  2. Entender a diretiva #pragma
  3. Entender a diretiva #warning

A diretiva #error é simples de ser entendida. O seu uso faz com que um erro seja provocado intencionalmente. No momento da compilação, a mensagem definida como argumento da diretiva será exibida como mensagem de erro na compilação.

Sintaxe
#error "mensagem"
Exemplo 1
#include <stdio.h>

void funcao()
{
    #error "Ainda falta codificar a funcao"
} 
int main()
{
    //trecho omitido
    funcao();
}
Saída
main.c: In function ‘funcao’:
main.c:13:2: error: #error “Ainda falta codificar a funcao”
13 | #error "Ainda falta codificar a funcao"
   |  ^~~~~

A diretiva #error pode ser utilizada em conjunto com outras diretivas como, por exemplo, a diretiva #ifdef como pode ser visto no exemplo abaixo:

Exemplo 2
#include <stdio.h>

int main()
{
#ifdef DEBUG
    #error "variaveis de debug devem ser utilizadas aqui"
#else
	//seu trecho de código aqui
#endif
}
Saída
main.c: In function ‘main’:
main.c:7:6: error: #error “variaveis de debug devem ser utilizadas aqui”
    7 |     #error “variaveis de debug devem ser utilizadas aqui”
      |      ^~~~~

O formato da saída de dados acima irá depender do compilador utilizado não sendo definitiva a sáida do exemplo acima.

A diretiva #warning funciona de forma semelhante a diretiva #error vista anteriormente. A diferença é que a #warning exibe apenas menasagens de aviso sem que haja o cancelamento da compilação.

Sintaxe
#warning message
Exemplo 3
#include <stdio.h>

void funcao()
{
    #warning "Ainda falta verificar o casting dos dados"
} 

int main()
{
    //trecho omitido
    funcao();
}
Saída
 main.c: In function ‘funcao’:
main.c:13:2: warning: #warning "Ainda falta verificar o casting dos dados" 13 | #warning "Ainda falta verificar o casting dos dados"    | ^~~~~

O formato da saída de dados acima irá depender do compilador utilizado não sendo definitiva a sáida do exemplo acima.

  1. 07/10/2024 - revisão 2 - Ajustes pontuais
  2. 29/09/2023 - revisão 1 - Correção em referências, erros gramaticais e exemplos
  3. 19/05/2023 - versão inicial