/STACK
(Stack allocations)
/STACK:
reserve
[,
commit
]
Remarks
The /STACK
linker option sets the size of the stack in bytes. Use this option only when you build an .exe
file. The /STACK
option is ignored when applied to .dll
files.
The reserve
value specifies the total stack allocation in virtual memory. For ARM64, x86, and x64 machines, the default stack size is 1 MB.
The commit
value is subject to interpretation by the operating system. In WindowsRT, it specifies the amount of physical memory to allocate at a time. Committed virtual memory causes space to be reserved in the paging file. A higher commit
value saves time when the application needs more stack space, but increases the memory requirements and possibly the startup time. For ARM64, x86, and x64 machines, the default commit
value is 4 KB.
Specify the reserve
and commit
values in decimal or C-language hexadecimal notation (use a 0x
prefix).
Another way to set the size of the stack is with the STACKSIZE
statement in a module-definition (.def
) file. STACKSIZE
overrides the Stack Allocations (/STACK
) option if both are specified. You can change the stack size after the .exe
file is built by using the EDITBIN
tool.
To set this linker option in the Visual Studio development environment
Open the project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio.
Select the Configuration Properties > Linker > System property page.
Modify one of the following properties:
Stack Commit Size
Stack Reserve Size
To set this linker option programmatically
- See StackCommitSize and StackReserveSize properties.