开发者社区 问答 正文

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标准里面补充的内容?

展开
收起
杨冬芳 2016-05-30 11:18:54 2704 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    这样说是不对的,这是GCC的一个扩展,C标准是不支持嵌套函数的
    参见gcc-嵌套函数

    2019-07-17 19:19:22
    赞同 展开评论
问答分类:
问答地址: