<分区>
在一次采访中,有人问我函数参数是位于栈中还是堆中。我很确定这是作为示例给出的,以说明由于嵌入式内存规模的堆栈溢出风险如何避免递归函数。然而,这似乎是一个棘手的问题,因为我一直在审查虚函数,它允许 dynamic dispatch .
在搜索 SO 之后,似乎普通旧常规函数参数的内存位置取决于实现。
对于虚函数,其他答案几乎都说了同样的话——不能保证虚函数参数是如何在内存中实现的。
所以我想明白:
运行时函数实现如何以及在何处(堆栈?堆?两者都略知一二?)?
在对 ABI 所说的内容一无所知的情况下,了解此信息是否有用/是查找此类信息的好地方,还是有更好的地方可以查看?除了规范之外,是否有任何实验数据可以让我们“了解”内存在实践中的平均工作原理?
另外,先发帖问好!