它通常位于堆栈上,在函数调用的指针或函数的堆栈帧之前.我不知道这是否是标准所要求的,但它可能已经普遍完成.
所以拿这个例子:
int f(myClass byVal)
{
int b;
...
};
...
myClass myInst;
int val = f(myInst)
Run Code Online (Sandbox Code Playgroud)
我希望堆栈看起来像f里面的省略号:
<top> b (stack frame inside of f)
pointer to f
temp copy of myInst
myInst (stack frame of outer function).
...
Run Code Online (Sandbox Code Playgroud)
当f返回时,堆栈被清理到封闭功能的框架.
值得注意的是jogojapan的评论,优化可能会导致变化,包括将一些数据放入机器内部寄存器.你永远不会指望这样的内部细节,但是理解常用的机制是很好的.
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |