这是一个简单的程序:
简单的
int inverse(int input)
{
if( input == 0 )
return 1;
else
return 0;
}
int main()
{
inverse(1);
return 0;
}
我的问题是:
inverse()
是否推送名为参数的本地副本int input
还是只是在每次访问时都不断引用该参数?
最佳答案
铭记于心。 int input
定义在函数inverse()
中是本地的。因此,每次调用inverse()
时,都会分别分配input
的堆栈空间,并且一旦inverse()
完成执行,就不会存在input
变量。
*没有任何编译器优化
关于c - 如果未明确定义,是否为函数参数提供了本地地址空间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28670967/