_Noreturn function specifier (since C11) (deprecated in C23)
関数が呼び出し元に戻らないことを指定します。
目次 |
、
、
構文
| _Noreturn 関数宣言 | (C11以降) (C23で非推奨) | ||||||||
説明
_Noreturn
キーワードは関数宣言に現れ、その関数がreturn文の実行や関数本体の終端に到達することで戻らないことを指定します(
longjmp
の実行によって戻る可能性はあります)。
_Noreturn
で宣言された関数が戻った場合、動作は未定義です。これを検出できる場合、コンパイラ診断が推奨されます。
_Noreturn
指定子は同じ関数宣言内に複数回現れることがあり、その動作は1回現れた場合と同じです。
この指定子は通常、ヘッダー
<stdnoreturn.h>
で提供される便利マクロ
noreturn
を通じて使用されます。
|
マクロ
|
(C23以降) |
キーワード
標準ライブラリ
以下の関数は標準ライブラリにおいて
noreturn
です:
タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しています。翻訳対象となるテキストが存在しないため、出力は入力と同一となります)
例
出力:
Preparing to exit...
参考文献
- C23規格 (ISO/IEC 9899:2024):
-
- 6.7.4 関数指定子 (p: TBD)
-
- 7.23 _Noreturn <stdnoreturn.h> (p: TBD)
- C17規格 (ISO/IEC 9899:2018):
-
- 6.7.4 関数指定子 (p: 90-91)
-
- 7.23 _Noreturn <stdnoreturn.h> (p: 263)
- C11標準 (ISO/IEC 9899:2011):
-
- 6.7.4 関数指定子 (p: 125-127)
-
- 7.23 _Noreturn <stdnoreturn.h> (p: 361)
関連項目
|
関数が戻らないことを示す
(属性指定子) |
|
|
C++ documentation
for
[[noreturn]]
|
|