【发布时间】:2014-06-02 03:32:54
【问题描述】:
我想在 C 中实现反应式编程。反应式编程是数据流编程的一种形式。所以你有一些代码可以将数据发送到下一段代码等。
在单线程情况下,这需要我创建很多临时值。
gcc 是否可以选择重用不再使用的临时变量的堆栈内存?
为此,需要分析程序的数据流。它使用哪种算法? 最重要的是,我可以依靠它吗?
另一种选择是自己做。将必要的内存分配为 char 数组,然后使用指针。
【问题讨论】:
-
你在堆栈上放了多少内存,你需要重用一些? :P
-
可以看tail recursion了解问题。
-
不过,大多数 Mac 默认情况下最多有 8 mb 的堆栈。你经常这样吗? :P
-
一种大大减少堆栈使用的方法是定义一个包含所有数据变体的结构。在第一个要执行的函数处分配该区域。然后将 ptr 传递给该 malloc'd 区域给每个连续的函数。
-
@user3629249 不利的一面是你会在这里失去速度
标签: c gcc reactive-programming dataflow