内容大纲:
1、Blocks概要
2、Blocks模式
3、Block实质(面试常问重点)
1、Blocks概要
什么是Blocks:Blocks是C语言的扩充的功能,可以用一句话来表示Blocks的扩充功能:带有局部变量(有的资料局部变量也叫自动变量)的匿名函数。这个函数叫block。 (注意Blocks是一种功能,block是一种函数)
1-1、关于"匿名函数"
匿名函数:不带有名称的函数就是匿名函数。(但是C语言的标准不允许存在这样的函数。)
例如下面的源代码:在赋值给函数指针时,若不使用赋值的函数的名称,就无法取得该函数的地址:
然而通过Block,源代码中就能够使用匿名函数,即不带名称的函数。
1-2、关于"带有局部变量(有的资料讲局部变量也叫自动变量)"
这里为了能够让你们更好的理解这个"带有局部变量(有的资料局部变量也叫自动变量)",我需要拿普通的函数被回调的过程
和Block函数被回调的过程
进行对比,这样能够让读者更好的理解这个block的"带有局部变量(有的资料局部变量也叫自动变量)"的意义,以及这个block的特点。
(瞎扯两句:通过对比出与众不同的地方是可以成为特点的