Directiva #error en C?

¿Puede por favor dar la información sobre la directiva #error en C?

¿Qué es la directiva #error ? ¿Para qué sirve?

Es una directiva de preprocesador que se usa (por ejemplo) cuando espera que se defina uno de los varios símbolos -D posibles, pero ninguno lo es.

 #if defined(BUILD_TYPE_NORMAL) # define DEBUG(x) do {;} while (0) /* paranoid-style null code */ #elif defined(BUILD_TYPE_DEBUG) # define DEBUG(x) _debug_trace x /* eg DEBUG((_debug_trace args)) */ #else # error "Please specify build type in the Makefile" #endif 

Cuando el preprocesador golpea la directiva #error , informará la cadena como un mensaje de error y detendrá la comstackción; cómo se ve exactamente el mensaje de error depende del comstackdor.

Puede que tenga un código inválido pero es algo así como …

 #if defined USING_SQLITE && defined USING_MYSQL #error You cannot use both sqlite and mysql at the same time #endif #if !(defined USING_SQLITE && defined USING_MYSQL) #error You must use either sqlite or mysql #endif #ifdef USING_SQLITE //... #endif #ifdef USING_MYSQL //... #endif 

Si el comstackdor comstack esta línea, muestra un error fatal del comstackdor: y detenga la comstackción del progtwig:

 #include #ifndef __MATH_H #error First include then compile #else int main(){ float a,b=25; a=sqrt(b); printf("%f",a); return 0; } #endif Output:compiler error --> Error directive :First include then compile