Blocks是C語言的擴充功能。
它是帶有自動變量(局部變量)的匿名函數(shù)。
所謂匿名就是不帶有名稱的函數(shù)。
Blocks提供了類似C++和Objective-C類生成實例或?qū)ο髞肀3肿兞恐档姆椒?。所以所謂“帶自動變量值”,就是Blocks保持自動變量的值。
Blocks中將匿名函數(shù)部分稱為“Block literal”,或簡稱“Block”。
C語言的函數(shù)中可能使用的變量:
自動變量(局部變量)
函數(shù)的參數(shù)
靜態(tài)變量(靜態(tài)局部變量)
靜態(tài)全局變量
全局變量
其中,在函數(shù)的多次調(diào)用之間能夠傳遞值的變量有:
靜態(tài)變量(靜態(tài)局部變量)
靜態(tài)全局變量
全局變量
這些變量的作用域不同,但在整個程序中,一個變量總保持在一個內(nèi)存區(qū)域。多次調(diào)用函數(shù),但這些變量總能保持不變,在任何時候以任何狀態(tài)調(diào)用,使用的都是同樣的變量值。