Linux环境下有操作系统决定,一般是8KB,8192kbytes,通过ulimit命令查看以及修改

Windows环境下由编译器决定,VC++6.0一般是1M

Linux

linux下非编译器决定栈大小,而是由操作系统环境决定,默认是8192KB(8M);而在Windows平台下 栈的大小是被记录在可执行文件中的(由编译器来设置),即:windows下可以由编译器决定栈大小,而 在Linux下是由系统环境变量来控制栈的大小的。

在Linux下通过如下命令可查看和设置栈的大小:

$ ulimit -a # 显示当前栈的大小 (ulimit为系统命令,非编译器命令)

$ ulimit -s 32768 # 设置当前栈的大小为32M

Windows

下程序栈空间的大小,VC++ 6.0 默认的栈空间是1M。

VC6.0中修改堆栈大小的方法:

选择 "Project->Setting"

选择 "Link"

选择 "Category"中的 "Output" 在 "Stack allocations"中的"Reserve:"中输栈的大小