/Gs(控制堆栈检查调用)

更新:2007 年 11 月

控制堆栈探测。

/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 开发环境中设置此编译器选项

  1. 打开此项目的“属性页”对话框。有关详细信息,请参见如何:打开项目属性页

  2. 单击“C/C++”文件夹。

  3. 单击“命令行”属性页。

  4. 在“附加选项”框中键入编译器选项。

以编程方式设置此编译器选项

请参见

参考

编译器选项

设置编译器选项