#pragma leaves

C に適用 C++ に適用

説明

#pragma leaves は関数名を取得し、呼び出し後に関数がディレクティブに戻ることがないように指定します。

構文


構文図

このプラグマは、function が呼び出し元に戻らないようにコンパイラーに指示します。

このプラグマの利点は、これを使用するとコンパイラーは function の後にあるコードをすべて無視することができるので、最適化プログラムはより効率的なコードを生成することができるという点です。一般的に、このプラグマはカスタムのエラー処理関数に使用されますが、この場合特定のエラーが発生すると、プログラムを終了することができます。これと同様の関数には、exitlongjmpterminate があります。

#pragma leaves(handle_error_and_quit)
void test_value(int value)
{
	if (value == ERROR_VALUE)
	{
		handle_error_and_quit(value);
		TryAgain();	// optimizer ignores this because
				// never returns to execute it
	}
}

関連参照

汎用プラグマ IBM Copyright 2003