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 #ifndef como pode ser visto no exemplo abaixo:
            
            Exemplo 2
            
#include <stdio.h>
int main()
{
#ifndef 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.