超级大初学者有关问题求解

超级大菜鸟问题求解
#include <stdio.h>

int main()
{
int f(int x)
{
if(0==x)
return 0;
else
return 2*f(x-1)+x*x;
}
printf("%d",f(4));
return 0;
}
vc6.0显示本地函数定义非法,但是该成下面这种就对了,为啥呢?求解释




#include <stdio.h>
int f(int x);
int main()
{
printf("%d",f(4));
return 0;
}
int f(int x)
{
if(0==x)
return 0;
else
return 2*f(x-1)+x*x;
}

------解决方案--------------------
第一个是函数没有声明。第二个声明了。所以行了

------解决方案--------------------
一般不要这么做,即在一个函数内声明或定义另外一个函数。