Kun*_*asu 7 c gcc nested-function
有人请详细说明这些错误: -
void main()
{
int a=5, b=60, func();
printf("\nI am in main-1");
int func(){
printf("\nI am in funct");
return 1;
}
func();
printf("\nI am in main-2");
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
我认为C允许嵌套类,因为以下代码工作正常:
void outerfunc()
{
int func()
{
printf("\nI am in funct");
return 1;
}
func();
}
void main()
{
printf("\nI am in main-1");
outerfunc();
printf("\nI am in main-2");
}
Run Code Online (Sandbox Code Playgroud)
Nor*_*ame 14
您正在使用GNU C编译器的扩展,它允许嵌套函数的声明.错误来自这样一个事实,即GCC扩展下的嵌套函数的前向声明需要在auto关键字前加上.
int a=20,b=11;
int main()
{
int a=5, b=60;
auto int func(); // <--------- here
func(); // <- call it
printf("\nI am in main-1");
int func(){
printf("\nI am in funct");
return 1;
}
printf("\nI am in main-2");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html.