C语言函数嵌套定义问题

    几乎所有的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));

}


你可能感兴趣的:(C语言)