Директивы диагностики
Отображает заданное сообщение об ошибке и делает программу некорректной, или заданное сообщение об ошибке без влияния на корректность программы(с C23).
Синтаксис
#error diagnostic-message | (1) | |
#warning diagnostic-message | (2) | (с C23) |
Объяснение
1) После обнаружения директивы
#error, реализация отображает сообщение diagnostic-message и делает программу некорректной (компиляция останавливается).
2) Аналогично (1), за исключением того, что корректность программы не затрагивается, а компиляция продолжается.
diagnostic-message может состоять из нескольких слов, необязательно заключённых в кавычки.
Примечания
Перед его стандартизацией в C23, #warning предоставлялся многими компиляторами во всех режимах в качестве совместимого расширения.
Пример
#if __STDC__ != 1
# error "Not a standard compliant compiler"
#endif
#if __STDC_VERSION__ >= 202311L
# warning "Using #warning as a standard feature"
#endif
#include <stdio.h>
int main (void)
{
printf("The compiler used conforms to the ISO C Standard !!");
}Возможный вывод:
The compiler used conforms to the ISO C Standard !!
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 6.10.5 Директива ошибки (с. 126-127)
- Стандарт C11 (ISO/IEC 9899:2011):
- 6.10.5 Директива ошибки (с. 174)
- Стандарт C99 (ISO/IEC 9899:1999):
- 6.10.5 Директива ошибки (с. 159)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 3.8.5 Директива ошибки
См. также
| Документация C++ для Директивы диагностики |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/preprocessor/error