c 语言 是否支持函数嵌套定义

请问 c 语言中函数是否可以嵌套定义?

我自己试了以下代码

#include <stdio.h>

void f(int x)
{
    void p(int a)
    {
        printf("%d\n", a);
    }
    p(x);
}
int main()
{
    f(10);
    return 0;
}

是可以正常运行出结果的。
编译器 : gcc 4.5.2
编译指令 :gcc a.c

但老师上课说是错误的
我想知道是 函数嵌套是 undefined 的东西还是说在之后的c标准里面补充的内容?

阅读 6.1k
1 个回答

...楼上不要瞎说好么,这是GCC的一个扩展,C标准是不支持嵌套函数的
参见gcc-嵌套函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进