次の方法で共有


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

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

/homeparams

解説

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

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

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

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

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

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

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

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

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

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

参照

参照

コンパイラ オプション

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