如何显式推送/弹出到 C 返回堆栈?

ner*_*com 5 c stack gcc forth

有没有办法将数据显式推送/弹出到 C 返回堆栈?(理想情况下在标准 C 中,但仅 GCC 的解决方案也可以。)

我正在用 C 语言实现 Forth,在一个内存非常紧张的微控制器上(千字节,而不是兆字节)。

我正在为数据堆栈分配 RAM,但我希望通过显式推送/弹出与 C 返回堆栈共享 Forth 返回堆栈来节省一些 RAM。

这可以在C中完成吗?

nem*_*equ 2

GCC 有一个__builtin_return_address函数,这可能是您能得到的最接近的函数。

  • 这如何以任何方式回答OP的问题?他想要在调用堆栈上压入/弹出(尽管它从根本上来说是有缺陷的)。这个内置函数返回返回地址,甚至不是返回地址的地址。如果你认为这可以用来实现OP想要的,应该添加一些解释。 (2认同)