我只是跨ANSI(ISO)就沒有允許的功能嵌套.. 我想知道是什麼讓GNU C ITO實現這個功能(爲什麼這樣有需要時)。如果函數say(a())在另一個函數say(b())中定義,那麼 a()的生命週期將是整個程序?嵌套函數
a()ll的存儲是否將在分配給函數b()的堆棧中創建?
Q
嵌套函數
1
A
回答
1
我相信http://en.wikipedia.org/wiki/Nested_function回答大部分問題#1。問題#2在http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html和http://gcc.gnu.org/onlinedocs/gccint/Trampolines.html中的問題#3中有更詳細的解釋。
編輯:(除了)的維基百科文章莫名其妙地向左PL/M關閉其支持嵌套函數基於ALGOL的語言的列表。啊,過去的美好時光。
1
1)非常主觀。不是一個線索。 :-)
2)不,內部函數的生存期限制在外部函數的生命週期內。請參閱GCC documentation on nested functions。如果保留一個指向內部函數的指針並在外部函數返回後調用它,那麼可能會發生壞事。
3)內部函數分配自己的堆棧空間,就像任何其他函數一樣。它必須分配自己的空間以支持遞歸調用。
相關問題
- 1. 嵌套函數-python
- 2. 嵌套函數Pythonic?
- 3. jQuery嵌套函數
- 4. 上嵌套函數
- 5. 如何更改嵌套函數的變量在嵌套函數
- 6. 嵌套函數:「錯誤:無法找到嵌套函數」
- 7. 嵌套函數Javascript字數
- 8. Javascript函數和嵌套函數
- 9. Javascript嵌套函數「不是函數」
- 10. 函數內部的嵌套函數
- 11. 私有函數vs嵌套函數
- 12. IF函數和嵌套函數
- 13. jQuery匿名函數 - 嵌套函數
- 14. javascript函數調用 - 嵌套函數
- 15. PHP函數返回。嵌套函數
- 16. Haskell嵌套堆肥函數
- 17. Angular 2:Ts:嵌套函數
- 18. jquery嵌套函數訪問
- 19. 「這個」嵌套函數
- 20. SQL嵌套聚合函數
- 21. 嵌套函數調用
- 22. 的JavaScript - 寫嵌套函數
- 23. Postgres函數與嵌套IF
- 24. Javascript整理嵌套函數
- 25. 嵌套函數性能(F#)
- 26. 嵌套函數的CoffeeScript
- 27. 嵌套內核函數opencl
- 28. Javascript嵌套函數返回
- 29. 調用嵌套函數
- 30. R中的嵌套函數
謝謝你們:) – Tarun 2010-06-05 17:25:04