这是一个简单的程序:

简单的

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/

10-09 00:48