名前空間
変種
操作

診断ディレクティブ

From cppreference.com

指定されたエラーメッセージを表示し、プログラムを不正な形式として扱います。あるいは、プログラムの有効性に影響を与えずに指定された警告メッセージを表示します(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 !!

[編集] 参考文献

  • 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++ ドキュメント 診断ディレクティブ
English 日本語 中文(简体) 中文(繁體)