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

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

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

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

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

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

请参见

参考

编译器选项

设置编译器选项