美文网首页
C语言中的Block函数

C语言中的Block函数

作者: DarkSkyyy | 来源:发表于2017-09-07 17:25 被阅读0次

作用:

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;
}

相关文章

  • iOS底层之Block

    一、Block定义 Block是什么?Block是一个带自动变量的匿名函数,大家知道C语言中没有匿名函数,所以可以...

  • Objective-C界面传值(三):Block传值

    Block传值 Block,很像C语言中的函数指针,举个例子 不过在使用block时,因为block的声明格式比较...

  • iOS Block学习笔记(一) -- Block变量与C语言函

    C语言中的函数与函数指针 一般我们称Block是匿名函数, 匿名函数就是没有名称的函数, 本文就来梳理Block和...

  • Swift 闭包

    闭包 它类似于 C、Objective-C 语言中的 block 或其他一些语言中的匿名函数。 闭包格式 注意: ...

  • C语言中的Block函数

    作用: 1.block封装了一段代码,可以在任意时候调用执行2.block可以作为函数参数或者函数的返回值,而本身...

  • Block的深入学习

    (一)Block基础回顾 1.Block定义 带有局部变量的匿名函数,差不多就与C语言中的函数指针类似,可以当做参...

  • Block语法

    block定义 block类似于c语言中的函数指针,其定义方式为:返回值类型 (blockName)(参数列表)=...

  • iOS Block解析

    Block可表示为 " 带有自动变量值的匿名函数 " 1. 为什么是匿名函数 在C语言中, 函数必须要有函数名, ...

  • block原理

    c语言中的闭包 block解答题 block结构 唐巧之谈Objective-C block的实现

  • ios笔记: block 详细解析

    Block 就是 Objective-C 语言对于闭包的实现。 在编程语言中,闭包是函数或引用环境的函数的一个函数...

网友评论

      本文标题:C语言中的Block函数

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