/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 開発環境でこのリンカー オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[リンカー]>[システム] プロパティ ページを選択します。
次のいずれかのプロパティを変更します。
スタック コミット サイズ
スタック予約サイズ
このリンカーをコードから設定するには
- StackCommitSize プロパティおよび StackReserveSize プロパティを参照してください。