-qsmallstack

类别

优化和调整

@PROCESS

无。

用途

尽可能地减少堆栈使用。

此编译器选项控制两组不同但相又关的变换:一般小堆栈变换和动态长度变量分配变换。 这两种变换可以相互独立地控制。

语法

读取语法图跳过可视语法图 -q nosmallstacksmallstack=dynlenonheapnodynlenonheap

缺省值

-qnosmallstack

参数

dynlenonheap | nodynlenonheap
-qsmallstack=dynlenonheap 子选项影响具有非常量字符长度或非常量数组边界(HEAP 上的动态长度)的自动对象。 指定时,将在堆上分配这些自动变量。 如果未指定此子选项,那么将在堆栈上分配这些自动变量。

缺省值

缺省值 –qnosmallstack表示所有子选项都处于关闭状态。

用途

使用此选项可能会对程序性能产生负面影响;它应该仅用于在堆栈上分配大量数据的程序。

不带子选项的 -qsmallstack 仅启用常规小型堆栈变换。

-qnosmallstack 仅禁用常规小型堆栈变换。 要禁用 dynlenonheap 变换,请同时指定 -qsmallstack=nodynlenonheap

-qsmallstack=dynlenonheap 启用动态长度变量分配和一般小型堆栈变换。

要仅启用 dynlenonheap 变换,请指定 -qsmallstack=dynlenonheap -qnosmallstack

如果使用 -qsmallstack-qstacktemp 选项,那么 -qstacktemp 设置将用于分配适用的临时变量(如果它设置为非零值),即使此设置与 -qsmallstack 的设置冲突。 -qsmallstack 设置将继续应用不受 -qstacktemp 影响的变换。

相关信息