几乎所有的C语言教材上都说C语言函数可以嵌套调用,但不可以嵌套定义。实际上,函数能否嵌套定义与编译器有关,在GCC编译器下嵌套定义没问题,可以正常运行,我在code blocks 和 Dev C++两个IDE(两者都用GCC)下测试了如下两个程序,都没问题:
1.main函数中的嵌套定义。
#include "stdio.h"
int main()
{
int add(int a,int b)
{
return a+b;
}
printf("result = %d\n",add(5,67));
return 0;
}
2.非main函数中的嵌套定义。
#include "stdio.h"
int main()
{
void fun();
fun();
return 0;
}
void fun()
{
int fun_inner(int a,int b)
{
return a-b;
}
printf("result = %d\n",fun_inner(5,67));
}