gpt4 book ai didi

c - C中的堆栈内存重用gcc优化?

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:31 25 4
gpt4 key购买 nike

我想用 C 语言实现响应式编程。响应式编程是数据流编程的一种形式。所以你有一些代码可以将数据发送到下一段代码等。

在单线程情况下,这需要我创建大量临时值。

gcc 是否有重新使用不再使用的临时变量的堆栈内存的选项?

为此,需要分析程序的数据流。它使用哪种算法?最重要的是,我可以依赖它吗?

另一个选择是自己做。将必要的内存分配为 char 数组,然后使用指针。

最佳答案

根据您的模型和环境,可能会有一个“肮脏”的解决方案:通常,响应式(Reactive)程序将函数作为过程调用,即没有返回值。在 C 的情况下,对应于 void 函数。如果您的框架遵循此模型和 gcc,则可以使用 noreturn 属性。

请注意,不禁止从标记为noreturn 的函数返回。但是,不保证本地值和返回值,因为编译可能会将它们优化掉。然而,这正是您想要的。

为了仅允许 void 函数,您可以在全局状态下收集对您的事件的结果( react )。

如果您想要一个更通用但不是自动化的解决方案,有一种比您的数组方法更舒适的方法:只需在堆上分配所有不需要的变量,并在下一次函数调用之前为它们充电。

关于c - C中的堆栈内存重用gcc优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23986987/

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