block底層淺談

weixin_34208185發表於2018-05-18

函式指標是指向函式的指標變數。

C++裡面的結構體相當於OC裡面的類  類就有變數和方法

C++裡面跟類名一樣的方法是構造方法  構造方法是用來初始化當前方法的

blcok底層實現

首先會建立一個結構體   _main_block_impl_0

blcok變數 是函式指標 -> void(^blcokName)()  

block塊物件 才是一個結構體 是有大量儲存空間的

block塊物件是結構體  結構體裡面有自己的構造方法 來建立自己 構造方法裡面需要傳入4個引數

void *fp   儲存一段函式 將來要執行的那個程式碼塊

_main_block_desc_0 *desc  描述自己大小的一個結構體

 int _a  儲存之前傳遞進去的變數(blcok)內部使用外部變數  只穿block內部用到的變數

int flags 僅僅是個標記

函式呼叫 其實就是找到fp記錄的程式碼塊,再傳入block本身,在程式碼塊中就能訪問到block裡面記錄的變數_a的值。

相關文章