Diagnostic directives
From cppreference.net
<
c
|
preprocessor
Показывает заданное сообщение об ошибке и делает программу некорректной , или заданное предупреждающее сообщение без влияния на валидность программы (начиная с C23) .
Содержание |
Синтаксис
#error
диагностическое-сообщение
|
(1) | ||||||||
#warning
диагностическое-сообщение
|
(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 !!
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 6.10.5 Директива error (стр: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 6.10.5 Директива ошибки (стр: 126-127)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 6.10.5 Директива error (стр: 174)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 6.10.5 Директива ошибки (стр: 159)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 3.8.5 Директива ошибки
Смотрите также
|
Документация C++
для
Директив диагностики
|