【发布时间】:2016-04-06 00:49:27
【问题描述】:
在 C++ 实现的上下文中,当调用函数时,与调用函数有关的共享变量的值存储在哪里?它们是存储在寄存器中还是被调用函数的激活记录中?
#include <iostream>
using namespace std;
int main() {
int A, B, C, D = 2;
C = sum(A, B);
cout<<C<<D;
return 0;
}
int sum(int NUMA, int NUMB);
int sum(int NUMA, int NUMB) {
int D;
D = numA + numB;
return D;
}
例如,计算机如何区分这两个函数中的 D?更重要的是,调用函数和被调用函数的共享变量是否存在单独的内存位置?
【问题讨论】:
-
在这种情况下,“共享变量”是什么意思?一些示例代码会很有用。
-
“共享变量”是什么意思?请用一个小代码示例说明您的问题。
-
您还必须命名一个实现。这不是“在 C++ 的上下文中”的问题,而是在 C++ 的实现的上下文中。
标签: c++ function memory-management call callstack