gpt4 book ai didi

c++ - 多个 vs 项目中的堆栈大小

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:32 30 4
gpt4 key购买 nike

假设我有一个包含 5 个项目 A、B、C、D 和 E 的 C++ Visual Studio 解决方案。这些项目已将/STACK 链接器选项设置为:

  • A = 4MB
  • B = 空(默认 1MB)
  • C = 空(默认 1MB)
  • D = 16MB
  • E = 25MB

所有这些都是作为单独的 DLL 构建的,具有公开的功能。项目:

  • A 包含一个函数 foo_a,它调用 foo_b(来自 B)和 foo_c(来自 C)
  • B 包含调用 foo_d(来自 D)和 foo_e(来自 E)的函数 foo_b

如果我调用函数 A.foo_a ,堆栈大小是多少?如果我直接调用 E.foo_e 会一样吗?

最佳答案

手动启动的线程(使用 CreateThread)可以从函数调用的参数中获取自定义大小,主线程的堆栈大小根据来自 EXE 的信息设置。

你的五个 DLL 根本不重要。
它们可以由链接器在其文件头中设置自定义大小,
但操作系统不会用它做任何事情。

(运行时堆栈大小(在 Windows 上)是每个线程,而不是每个文件。)

关于c++ - 多个 vs 项目中的堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24173160/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com