/homeparams (レジスタ パラメーターのスタックへのコピー)
関数の実行に入ったときに、レジスタで渡されたパラメーターを、強制的にスタック内のその場所に書き込みます。
/homeparams
解説
これは、x64 コンパイラ (ネイティブ コンパイルおよびクロス コンパイル) だけで使用されるコンパイラ オプションです。
パラメーターが x64 コンパイルに渡されるときは、呼び出し規約によりパラメーター (レジスタに渡されたパラメーターも含む) 用のスタック空間が必要です。 詳細については、「パラメーター渡し」を参照してください。 ただしリリース ビルドの既定では、レジスタ パラメーターはスタックではなく、パラメーター用に既に指定されている空間に書き込まれます。 このことは、プログラムの最適化されたビルド (リリース ビルド) のデバッグを困難にします。
リリース ビルドでは、/homeparams を使用して、アプリケーションを確実にデバッグできるようにしてください。 /homeparams ではレジスタ パラメーターを繰り返しスタックに読み込む必要があるためパフォーマンスが低下します。
デバッグ ビルドでは、レジスタに渡されるパラメーターが常にスタックに読み込まれます。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダーをクリックします。
[コマンド ライン] プロパティ ページをクリックします。
[追加のオプション]ボックスにコンパイラ オプションを入力します。
このコンパイラ オプションをコードから設定するには
- AdditionalOptions を参照してください。