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 


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 

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

你可能感兴趣的:(C语言中的Block函数)