/homeparams (レジスタ パラメータのスタックへのコピー)

更新 : 2007 年 11 月

関数の実行に入ったときに、レジスタで渡されたパラメータを、強制的にスタック内のその場所に書き込みます。

/homeparams

解説

これは、x64 コンパイラ (ネイティブ コンパイルおよびクロス コンパイル) だけで使用されるコンパイラ オプションです。

パラメータが x64 コンパイルに渡されるときは、呼び出し規約によりパラメータ (レジスタに渡されたパラメータも含む) 用のスタック空間が必要です。詳細については、「パラメータ渡し」を参照してください。ただしリリース ビルドの既定では、レジスタ パラメータはスタックではなく、パラメータ用に既に指定されている空間に書き込まれます。このことは、プログラムの最適化されたビルド (リリース ビルド) のデバッグを困難にします。

リリース ビルドでは、/homeparams を使用して、アプリケーションを確実にデバッグできるようにしてください。/homeparams ではレジスタ パラメータを繰り返しスタックに読み込む必要があるためパフォーマンスが低下します。

デバッグ ビルドでは、レジスタに渡されるパラメータが常にスタックに読み込まれます。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。

  2. [C/C++] フォルダをクリックします。

  3. [コマンド ライン] プロパティ ページをクリックします。

  4. [追加のオプション]ボックスにコンパイラ オプションを入力します。

このコンパイラ オプションをコードから設定するには

参照

参照

コンパイラ オプション

コンパイラ オプションの設定