/STACK (スタック割り当て)

/STACK:reserve[,commit]

解説

/STACK リンカー オプションでは、スタックのサイズをバイト単位で指定します。 このオプションは、.exe ファイルのビルドだけに使用します。 .dll ファイルに適用する場合、/STACK オプションは無視されます。

reserve 値は、仮想メモリ内のスタック割り当ての合計サイズを指定します。 ARM64、x86、および x64 コンピューターの場合、既定のスタックのサイズは 1 MB です。

commit 値は、オペレーティング システムによって解釈が異なります。 WindowsRT では、一度に確保する物理メモリ量です。 仮想メモリがコミットされると、ページング ファイル内にメモリ空間が予約されます。 commit の値を大きく設定すると、アプリケーションに必要なスタック領域が増えたときに処理時間を節約できます。ただし、必要なメモリ量と起動時間が増えます。 ARM64、x86、および x64 コンピューターの場合、既定の commit 値は 4 KB です。

reserve および commit の値は、10 進数または C 言語の 16 進数表記で指定します (0x プレフィックスを使用)。

別の方法としては、モジュール定義 (.def) ファイルの STACKSIZE ステートメントでスタックのサイズを設定することもできます。 STACKSIZE は、両方を指定した場合、スタック割り当て (/STACK) オプションをオーバーライドします。 EDITBIN ツールを使用すると、.exe ファイルをビルドした後でスタック サイズを変更できます。

Visual Studio 開発環境でこのリンカー オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[リンカー]>[システム] プロパティ ページを選択します。

  3. 次のいずれかのプロパティを変更します。

    • スタック コミット サイズ

    • スタック予約サイズ

このリンカーをコードから設定するには

  1. StackCommitSize プロパティおよび StackReserveSize プロパティを参照してください。

関連項目

MSVC リンカーのリファレンス
MSVC リンカー オプション