Blocks是C語言的擴(kuò)充功能舵抹。
它是帶有自動(dòng)變量(局部變量)的匿名函數(shù)逆济。
所謂匿名就是不帶有名稱的函數(shù)脸甘。
Blocks提供了類似C++和Objective-C類生成實(shí)例或?qū)ο髞肀3肿兞恐档姆椒ê涤住K运^“帶自動(dòng)變量值”奉件,就是Blocks保持自動(dòng)變量的值啄骇。
Blocks中將匿名函數(shù)部分稱為“Block literal”痴鳄,或簡稱“Block”。
C語言的函數(shù)中可能使用的變量:
自動(dòng)變量(局部變量)
函數(shù)的參數(shù)
靜態(tài)變量(靜態(tài)局部變量)
靜態(tài)全局變量
全局變量
其中缸夹,在函數(shù)的多次調(diào)用之間能夠傳遞值的變量有:
靜態(tài)變量(靜態(tài)局部變量)
靜態(tài)全局變量
全局變量
這些變量的作用域不同痪寻,但在整個(gè)程序中,一個(gè)變量總保持在一個(gè)內(nèi)存區(qū)域虽惭。多次調(diào)用函數(shù)橡类,但這些變量總能保持不變,在任何時(shí)候以任何狀態(tài)調(diào)用芽唇,使用的都是同樣的變量值顾画。