我很好奇为什么大多数本地语言,包括 C、C++ 和 D,都没有定义堆栈溢出行为。是不是因为它需要检测每个堆栈变量分配和函数调用,而这反过来又会使代码变得异常缓慢?即使如此,它至少可以在编译器被提供一些额外的详细调试标志时启用。
我问这个是因为我alloca
在编写 C++ 代码时对使用 C99 可变长度数组 (VLA) 和 C 函数感到怀疑。对于一些内存处理密集型算法,这可能会导致显着的加速。
我猜这个问题已经被问过很多次了,但我似乎找不到关于 stackexchange 的相关文章。
我很好奇为什么大多数本地语言,包括 C、C++ 和 D,都没有定义堆栈溢出行为。是不是因为它需要检测每个堆栈变量分配和函数调用,而这反过来又会使代码变得异常缓慢?即使如此,它至少可以在编译器被提供一些额外的详细调试标志时启用。
我问这个是因为我alloca
在编写 C++ 代码时对使用 C99 可变长度数组 (VLA) 和 C 函数感到怀疑。对于一些内存处理密集型算法,这可能会导致显着的加速。
我猜这个问题已经被问过很多次了,但我似乎找不到关于 stackexchange 的相关文章。