一部の関数呼び出しを、組み込み関数、またはそれ以外でアプリケーションの実行時間の短縮に役立つ特殊な形式の関数に置き換えます。
構文
/Oi[-]
解説
組み込み関数を使用するプログラムは、関数呼び出しのオーバーヘッドはありませんが、追加のコードが作成されるために大きくなる可能性があるため、高速です。
組み込み形式を持つ関数の詳細については、「 組み込み関数」を参照してください。
/Oi は、一部の関数呼び出しを組み込み関数に置き換えるコンパイラへの要求にすぎません。 パフォーマンスが向上した場合、コンパイラは関数を呼び出すことができます (関数呼び出しを組み込み関数に置き換えるわけではありません)。
/Oi- この動作をオフにします。これは、 /Oi
が他の場所で指定されていてオーバーライドする場合に便利です。
x86 Specific
組み込みの浮動小数点関数は入力値に対して特別なチェックを実行しないため、制限された入力範囲で動作し、同じ名前のライブラリ ルーチンとは異なる例外処理と境界条件を持ちます。 真の組み込み形式を使用すると、IEEE の例外処理が失われ、_matherr
と errno
が機能しなくなります。後者は、ANSI に準拠しなくなることを意味します。 ただし、組み込み形式を使用すると、浮動小数点数を多用するプログラムを大幅に高速化できます。また、多くのプログラムでは、準拠の問題には実用的な価値はほとんどありません。
Za
コンパイラ オプションを使用して、真の組み込み浮動小数点オプションの生成をオーバーライドできます。 浮動小数点関数はライブラリ ルーチンとして生成されます。これらのライブラリ ルーチンでは、引数はプログラム スタックにプッシュされずに、数値演算コプロセッサに直接渡されます。
End x86 固有の仕様
intrinsic を使って組み込み関数を作成したり、function (C/C++) を使って関数呼び出しを明示的に強制したりすることもできます。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
- プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
- [構成プロパティ]>[C/C++]>[最適化] プロパティ ページを選択します。
- [組み込み関数を使用する] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。EnableIntrinsicFunctions
関連項目
/O オプション (コードの最適化)
MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文
コンパイラの組み込み