星球 - GCC 的 nested function 與 trampoline

作者:jserv | 來自:Jserv's blog | 2010/7/29 17:54:00
GCC 提供特有的 C 語言 extension,允許像 Pascal 一般,定義 nested function,詳情可參考 GCC 手冊 [Nested Functions],注意,由於程式語言設計的一致性考量,此機制不在 GNU C++ 支援。nested function 的形式很明顯,就是在定義於另一個函式內部的函式,以下引用 GCC 手冊的範例: 由上可見,函式 bar() 的程式碼實做中有個 nested functon -- accss(),後者可存取到前者的變數 offset,符合 lexical scoping 的規範。乍看 nested function 只是一種語法上的 syntax sugar?非也,事實上,可在 nested funtion 的 scope...