-qsmallstack
类别
@PROCESS
无。
用途
尽可能地减少堆栈使用。
此编译器选项控制两组不同但相又关的变换:一般小堆栈变换和动态长度变量分配变换。 这两种变换可以相互独立地控制。
语法
缺省值
-qnosmallstack
参数
- dynlenonheap | nodynlenonheap
- -qsmallstack=dynlenonheap 子选项影响具有非常量字符长度或非常量数组边界(HEAP 上的动态长度)的自动对象。 指定时,将在堆上分配这些自动变量。 如果未指定此子选项,那么将在堆栈上分配这些自动变量。
缺省值
缺省值 –qnosmallstack表示所有子选项都处于关闭状态。
用途
使用此选项可能会对程序性能产生负面影响;它应该仅用于在堆栈上分配大量数据的程序。
不带子选项的 -qsmallstack 仅启用常规小型堆栈变换。
-qnosmallstack 仅禁用常规小型堆栈变换。 要禁用 dynlenonheap 变换,请同时指定 -qsmallstack=nodynlenonheap 。
-qsmallstack=dynlenonheap 启用动态长度变量分配和一般小型堆栈变换。
要仅启用 dynlenonheap 变换,请指定 -qsmallstack=dynlenonheap -qnosmallstack 。
如果使用 -qsmallstack 和 -qstacktemp 选项,那么 -qstacktemp 设置将用于分配适用的临时变量(如果它设置为非零值),即使此设置与 -qsmallstack 的设置冲突。 -qsmallstack 设置将继续应用不受 -qstacktemp 影响的变换。
