C语言中的Block函数

作用:

1.block封装了一段代码,可以在任意时候调用执行
2.block可以作为函数参数或者函数的返回值,而本身又可以带入参数或返回值
3.block在iOS中的多线程、异步任务、集合遍历、集合排序、动画专场用的多

特点:

a. block用来保存一段代码(预先准备好的一段代码)
b. block的标志:^
c. block和函数指针很像

Blcok类型:

①. 无形参无返回值:void (^blockFunction)(void)
②. 有形参无返回值:void (^blockFunction)(int a, int b)
③. 无形参有返回值: int (blockFunction)(void)
④. 有形参有返回值: int (blockFunction)(int a, int b)


事例一:在函数内部定义block并调用执行


#include <stdio.h>


int main(void)
{
    // 先定一个block函数
    int (^sumFunction)(int a, int b) = ^(int x, int y)
    {
        // 此{}里的代码现在压根没有执行,只是预先准备好了
        return (x + y);
    }

    // 调用执行block函数
    int temp = sumFunction(2, 3);// 此时会执行上面{}里的代码块,并返回一个int类型的数值
    // 打印出来
    printf("temp = %d\n", temp);
    // 控制台打印信息是
    // temp = 5 

    return 0;
}

事例二:在函数外部定义block类型并调用执行


#include <stdio.h>

typedef int (^blockFunctionType)(int a, int b);

int main(void)
{
    // 使用blcok类型实现一段代码块
    blockFunctionType blockFunction = ^(int x, int y)
    {
        // 此{}里的代码现在压根没有执行,只是预先准备好了
        return (x + y);
    };

    // 调用执行block函数
    int temp = blockFunction(2, 3);// 此时会执行上面{}里的代码块,并返回一个int类型的数值
    // 打印出来
    printf("temp = %d\n", temp);
    // 控制台打印信息是
    // temp = 5 

    return 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧...
    金巴多阅读 1,843评论 0 9
  • C语言函数(一) 谨记 短暂的人生中,注定有很多人陪伴着你度过,陪你一起欢呼,陪你一起伤心流泪,陪你一起走过一条又...
    长风留言阅读 2,314评论 1 7
  • 简述 一句话搞懂block:可以理解为,block是对上下文代码段的打包,然后在适当的时机执行。 block长什么...
    Allan_野草阅读 2,178评论 0 25
  • 《Objective-C高级编程》这本书就讲了三个东西:自动引用计数、block、GCD,偏向于从原理上对这些内容...
    WeiHing阅读 9,926评论 10 69
  • 将切好的肉丝拌上豆粉,加少许水拌匀 首先把锅烧辣,再倒油烧辣,然后放肉丝盖锅盖 肉丝在没烧热之前一定不能翻炒 烧热...
    建平加油阅读 554评论 0 2