診断ディレクティブ
From cppreference.com
< c | preprocessor
指定されたエラーメッセージを表示し、プログラムを不正な形式として扱います。あるいは、プログラムの有効性に影響を与えずに指定された警告メッセージを表示します(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++ ドキュメント 診断ディレクティブ
|