美文网首页
第二章 2.2.2 Block类型变量

第二章 2.2.2 Block类型变量

作者: MrSYLong | 来源:发表于2018-07-31 22:58 被阅读12次

Block语法从记述方式上,除了没有名称以及带有“ ^ ”以外,其他都于C语言函数定义相同。 在定义C语言函数时,可以将所定义的函数的地址赋值给函数指针类型变量中。

int func (int count)
{
    return count + 1;
}

int (*funcptr) (int) = &func;

同样地,在Block语法下,可将Block语法赋值给声明为Block类型的变量中。
代码中使用Block语法就相当于生成了可赋值给Block类型变量的值。

有关Blocks的文档中,“Block”既指代码中的Block语法,也指由Block语法所生成的值。

// 声明Block类型变量 示例:
int (^blk) (int);

Block类型变量与一般C语言变量完全相同,用途:
自动变量
函数参数
静态变量
静态全局变量
全局变量

// Block语法生成的值赋值给Block类型变量
int (^blk) (int) = ^int (int count) {
    return count + 1;
};

Block类型变量可以给Block类型变量赋值,可以作为函数参数,也可以作为函数返回值。

// 通过typedef 声明Block类型变量
typedef int (^blk) (int);

调用Block类型变量与调用函数指针类型变量一样

// 调用函数指针类型变量
int ruesult = (*funcptr)(10);

// 调用Block类型变量
int ruesult = blk(10);

相关文章

  • 第二章 2.2.2 Block类型变量

    Block语法从记述方式上,除了没有名称以及带有“ ^ ”以外,其他都于C语言函数定义相同。 在定义C语言函数时,...

  • iOS原理篇(五):Block探究

    Block原理 Block变量捕获 Block类型 copy操作和Block内部访问对象类型的变量 __block...

  • Block 第三次学习 感谢 MJ老师

    block 内部结构 Block block 变量捕获 变量类型捕获到block 内部访问方式局部变量auto(平...

  • 关于 block

    block 1.block 是一个数据类型,所以我们可以声明一个block类型的变量. 2.block 类型的变量...

  • Block:Block 对象类型的auto变量

    Block 对象类型的auto变量 当block内部访问了对象类型的auto变量时 1、如果block是在栈上,将...

  • Block

    Block的变量捕获(capture) Block的类型 如何区分Block的类型 MRC:Global:没有访问...

  • block的简单理解(1)

    一. block类型的变量的声明. 返回值类型(^block变量名)(参数列表); void (^myBlock)...

  • 06.4-OC中block捕获对象类型的变量

    block捕获对象类型的变量 前面讲解的block变量捕获,我们讲解了block捕获基本数据类型的情况,下面我们再...

  • iOS底层:Block

    block的本质 block的变量捕获(capture) block的类型 block有3种类型,可以通过调用cl...

  • Objective - C block(二)block的类型及捕

    (一)block 捕获变量类型 为了保证block内部能够正确访问外部的变量,block有一个变量捕获机制 (1)...

网友评论

      本文标题:第二章 2.2.2 Block类型变量

      本文链接:https://www.haomeiwen.com/subject/equkvftx.html