为什么C中没有局部函数?

为什么C中没有局部函数?,c,C,C没有本地函数有技术原因吗?这可能是一个实现问题吗?我认为你不会得到比“因为C的创建者没有想到它/想要它”更好的答案……C是以极简主义为目标设计的。相对较少的关键字、特性等使编写编译器变得相当容易。本地(嵌套)函数无法实现没有任何技术原因。。事实上,嵌套函数可以作为GNU C扩展(不是ANSI C的一部分)使用。。本地函数是一种丑陋的(需要可执行堆栈,因此需要打开安全漏洞)方法,通过使用一对(func\u ptr,context\u ptr)而不是一个裸函数指针来完成您已经可以做的事情。@R..

C没有本地函数有技术原因吗?这可能是一个实现问题吗?

我认为你不会得到比“因为C的创建者没有想到它/想要它”更好的答案……C是以极简主义为目标设计的。相对较少的关键字、特性等使编写编译器变得相当容易。本地(嵌套)函数无法实现没有任何技术原因。。事实上,嵌套函数可以作为GNU C扩展(不是ANSI C的一部分)使用。。本地函数是一种丑陋的(需要可执行堆栈,因此需要打开安全漏洞)方法,通过使用一对
(func\u ptr,context\u ptr)
而不是一个裸函数指针来完成您已经可以做的事情。@R..:您是指匿名函数吗?他指的是嵌套函数AFAICT。嵌套函数只服务于一个实际点:允许将数据与函数指针捆绑在一起,以便与需要回调的接口一起使用,但不允许使用单独的数据上下文指针。不幸的是,它们仍然不是真正的完全闭包,因为它们超出了范围。。。我想另一个用途是惰性(访问调用方的本地变量而不将它们放入结构并传递指针)。。。。。。