/Gs(控制堆栈检查调用)
控制堆栈探测。
/Gs[size]
实参
- size
(可选)在激活堆栈探测之前局部变量可以占用的字节数。
备注
此选项是控制堆栈探测的高级功能。 堆栈探测是编译器插入到每个函数调用中的代码序列。 堆栈探测激活时,它在内存中良性延伸存储关联函数的局部变量所需的空间量。
如果函数的局部变量需要的堆栈空间多于 size 字节,则激活它的堆栈探测。 size 的默认值是一页的大小:
x86 为 4 KB
x64 为 4 KB
Itanium 为 8 KB
此值使应用程序和 Windows 内存管理器可以增加运行时提交给程序堆栈的内存量。
提示
size 的默认值使 Windows 应用程序的程序堆栈可以在运行时适当增长。 除非有确切的理由,否则不要更改 /Gs 的默认设置。
某些程序(如虚拟设备驱动程序)并不需要这种默认堆栈增长机制。 在这些情况下不需要堆栈探测。 通过设置 size 值使其大于任何函数的局部变量存储的需要,可以阻止编译器生成堆栈探测。 /Gs 和 size 之间不允许有空格。
/Gs0 的作用与 /Ge(启用堆栈探测) 一样。
可以通过使用 check_stack 打开或关闭堆栈探测。 请注意,/Gs 和 check_stack 杂注对标准 C 库例程没有影响;它们只影响您编译的函数。
在 Visual Studio 开发环境中设置此编译器选项
打开该项目的**“属性页”**对话框。 有关详细信息,请参见 如何:打开项目属性页。
单击**“C/C++”**文件夹。
单击**“命令行”**属性页。
在**“附加选项”**框中键入编译器选项。
以编程方式设置此编译器选项
- 请参见 AdditionalOptions。