Namespaces
Variants

Diagnostic directives

From cppreference.net

指定されたエラーメッセージを表示し、プログラムを不適格とする 、またはプログラムの有効性に影響を与えずに警告メッセージを表示する (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 エラーディレクティブ (p: TBD)
  • C17規格 (ISO/IEC 9899:2018):
  • 6.10.5 エラーディレクティブ (p: 126-127)
  • C11規格 (ISO/IEC 9899:2011):
  • 6.10.5 エラーディレクティブ (p: 174)
  • C99標準 (ISO/IEC 9899:1999):
  • 6.10.5 エラーディレクティブ (p: 159)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 3.8.5 エラーディレクティブ

関連項目

C++ ドキュメント for 診断ディレクティブ