Spec-Zone.ru › C

Директивы диагностики

Отображает заданное сообщение об ошибке и делает программу некорректной, или заданное сообщение об ошибке без влияния на корректность программы(с 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API