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