|
|
1
2
嵌套函数提供 encapsulation 通过 lexical scope .
在你的例子中,
|
|
|
2
3
嵌套函数可以访问外部函数的局部变量。类似于闭包,您可以将指针指向嵌套函数并将此指针传递给其他函数,嵌套函数将可以访问当前调用的局部变量(如果此调用已返回,则会发生错误)。因为C运行时系统不是为此而设计的,所以函数指针通常只是指向函数的第一条指令的指针,而指向嵌套函数的指针只能通过在堆栈上编写一些代码并传递指向该堆栈的指针来完成。从安全角度来看,这是个坏主意。 如果要使用嵌套函数,请在运行时系统中使用对其具有适当支持的语言。为了在C语言中实现类似的结果,将“外部函数的局部变量”放在上下文结构中并手动传递。 |
|
|
3
1
通常,嵌套函数通常是一个helper函数,它只在另一个函数中使用。有点像
嵌套函数不是标准的C语言,因此在该语言中使用它们几乎没有理由。 |
|
|
4
0
在其他编程语言(例如Python、Ruby)中,函数是第一类对象。你有 closures 它们是强大的抽象概念。在python中,您可以执行以下操作:
那就是咖喱装饰器,它接受一个函数并使它变成咖喱。 |