十、Block之(二)變量捕獲

1.捕獲auto變量

auto變量,實(shí)質(zhì)上就是局部變量的一種,默認(rèn)為auto類型,離開作用域就會被銷毀。例如:Int age = 0; 實(shí)質(zhì)上是 auto Int age = 0


創(chuàng)建帶auto類型參數(shù)的block
帶有auto類型成員變量的__main_block_impl_0的結(jié)構(gòu)
注:其中構(gòu)造函數(shù)參數(shù)括號后面的用" : " 隔開的age(_age),本質(zhì)上就是age = _age;

2.捕獲static變量

創(chuàng)建帶static類型參數(shù)的block

帶有static類型成員變量的__main_block_impl_0的結(jié)構(gòu)

函數(shù)調(diào)用時(shí)獲取的是變量的指針

3.變量捕獲總結(jié)

auto和static變量捕獲對比

4.小小的疑問:為什么要捕獲局部變量?

捕獲局變量的原因說明

內(nèi)部實(shí)現(xiàn)為跨函數(shù)訪問


跨函數(shù)訪問局部變量,無法實(shí)現(xiàn),必須有一個保存局部變量的方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容