Не могли бы вы предоставить информацию о директиве #error в C?
Что такое директива #error? что его использовать?
Ответ 1
Это директива препроцессора, которая используется (например), когда вы ожидаете определить один из нескольких возможных символов -D, но ни один из них не является.
#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 /* e.g. DEBUG((_debug_trace args)) */
#else
# error "Please specify build type in the Makefile"
#endif
Когда препроцессор попадает в директиву #error, он будет сообщать строку как сообщение об ошибке и останавливать компиляцию; как выглядит сообщение об ошибке, зависит от компилятора.
Ответ 2
У меня может быть неверный код, но это что-то вроде...
#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
Ответ 3
Если компилятор компилирует эту строку, он показывает фатальную ошибку компилятора: и прекратите дальнейшую компиляцию программы:
#include<stdio.h>
#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