应该在堆栈上分配的变量大小是否有最大限制?

che*_*che 9 c variables stack struct

我在C中声明了一个大于1024字节的结构变量.在运行Coverity(静态代码分析器应用程序)时,它报告此堆栈变量大于1024字节,因此是错误原因.我想知道我是否需要担心这个警告?单个堆栈变量的大小是否真的有最大限制?

谢谢,谢

R S*_*hko 3

变量的最大大小受到堆栈最大大小的限制(具体来说,当前使用中剩余的堆栈量,包括堆栈上较高函数的变量和参数以及进程帧开销)。

在 Windows 上,第一个线程的堆栈大小是链接期间可执行集的属性,而线程的堆栈大小可以在线程创建期间指定。

在 Unix 上,第一个线程的堆栈大小通常仅受其增长空间的限制。根据特定 Linux 的内存布局方式以及共享对象的使用情况,情况可能会有所不同。线程的堆栈大小也可以在线程创建期间指定。