Namespaces
Variants

Diagnostic directives

From cppreference.net

주어진 오류 메시지를 표시하고 프로그램을 비정형으로 만듭니다 , 또는 프로그램의 유효성에 영향을 주지 않고 주어진 경고 메시지를 표시합니다 (C23부터) .

목차

구문

#error diagnostic-message (1)
#warning diagnostic-message (2) (C23 이후)

설명

1) #error 지시자를 만난 후, 구현체는 diagnostic-message 메시지를 표시하고 프로그램을 ill-formed 상태로 만듭니다(컴파일이 중단됩니다).
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 오류 지시자 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 6.10.5 Error 지시자 (p: 126-127)
  • C11 표준 (ISO/IEC 9899:2011):
  • 6.10.5 Error 지시자 (p: 174)
  • C99 표준 (ISO/IEC 9899:1999):
  • 6.10.5 Error 지시자 (p: 159)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 3.8.5 Error 지시자

참고 항목

C++ 문서 에 대한 진단 지시문