__declspec(noreturn)

提供: Appmethod Topics
移動先: 案内検索

キーワード(アルファベット順):インデックス への移動


カテゴリ

修飾子拡張キーワード記憶クラス指定子

構文

__declspec( noreturn ) declarator

この __declspec 属性は関数が戻らないことをコンパイラに通知します。 結果として、__declspec(noreturn) 関数への呼び出しに続く、コードに到達できないということをコンパイラは認識します。

値を返さない制御パスがある関数を検出すると、コンパイラは警告を生成します。 値を返さない関数のために制御パスに到達できない場合、__declspec(noreturn) を使用してこの警告やエラーを回避できます。

次のコードを考えます。 else 句には、return 文がありません。したがって、プログラマは fatal を __declspec(noreturn) として宣言してエラーまたは警告メッセージを回避します。

__declspec(noreturn) extern void fatal ()
{
   // Code omitted
}
int foo()
{
   if(...)
      return 1;
   else if(...)
      return 0;
   else
      fatal();
}

関連項目