我正在编写类似于下面的代码的内容,但我不小心在函数定义的主体内调用了相同的函数。
double function(double &value)
{
//do something with a here
if(some condition)
{
function(a);
}
return a;
}
考虑以下形式:
int function(int &m) {
m = 2*m;
if(m < 20)
{
function(m);
}
return m;
};
int main() {
int a = 2;
std::cout <<"Now a = "<<function(a);
return 1;
}
据我说,这不应该运行,更不用说编译了。但它确实运行并给出了正确的结果
现在 a = 32
我什至在“完成”定义它之前就调用了该函数。然而,它有效。为什么?