为何macOS系统中栈内存大小并非精确为8MB?
macOS默认栈大小差值疑问
我在观察到Windows系统默认栈大小略大于1MB后,想要测试macOS的栈大小限制。发现即使在未使用任何栈内存的情况下,macOS的栈大小限制也比默认的8MB少18648字节,这个差值对我来说有点大。我知道调用函数会占用部分栈空间,但这里只调用了无参数的main()函数。
#include <iostream> typedef unsigned int u32; int main() { constexpr u32 bytes_1MB = 1024 * 1024; constexpr u32 bytes_8MB = 8 * bytes_1MB; constexpr u32 stack_size = 7 * bytes_1MB + 1029928; constexpr u32 diff = bytes_8MB - stack_size; // std::cout << diff << '\n'; volatile char arr[stack_size]; }
内容的提问来源于stack exchange,提问作者Markus Peterson
相关产品推荐
相关产品推荐

