开发者社区 问答 正文

请问 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-27 18:53:43 4154 分享 版权
4 条回答
写回答
取消 提交回答
  • 专注物联网

    错了吧,这是GCC的一个扩展,C标准是不支持嵌套函数的
    参见gcc-嵌套函数

    2019-07-17 19:18:39
    赞同 展开评论
  • 乐于学习与分析

    c++支持,c不支持

    2019-07-17 19:18:38
    赞同 展开评论
  • 软件开发,安全加密

    c++支持,c不支持

    2019-07-17 19:18:38
    赞同 展开评论
  • IT从业

    错了吧,这是GCC的一个扩展,C标准是不支持嵌套函数的
    参见gcc-嵌套函数

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