directive #error en C?

Pouvez-vous s’il vous plaît donner les informations sur la directive #error en C?

Quelle est la directive #error ? à quoi sert-il?

C’est une directive de préprocesseur qui est utilisée (par exemple) lorsque vous vous attendez à ce que l’un des plusieurs symboles -D possibles soit défini, mais aucun ne l’est.

 #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 

Lorsque le préprocesseur atteint la directive #error , il #error la chaîne sous forme de message d’erreur et arrête la compilation; la nature exacte du message d’erreur dépend du compilateur.

J’ai peut-être un code invalide mais c’est quelque chose comme …

 #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 le compilateur comstack cette ligne, il affiche une erreur fatale du compilateur et arrête la compilation ultérieure du programme:

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