prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 20.24

为什么 C 语言没有嵌套函数?


要实现嵌套函数,使其能够正确访问包含函数(们)中的局部变量,这并非易事,因此 C 语言为了简化而故意省略了此功能。(gcc作为一种扩展是允许的。)对于嵌套函数的许多潜在用途(例如qsort比较函数),一种虽然有些繁琐但足够的解决方案是使用 adjacent 函数(旁函数)进行静态声明,必要时通过几个静态变量进行通信。(虽然qsort不支持,但更简洁的解决方案是传递一个指向包含必要上下文的结构的指针。)


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管