博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Block
阅读量:5152 次
发布时间:2019-06-13

本文共 888 字,大约阅读时间需要 2 分钟。

一、Block 语法

1、^ 返回值类型 参数列表 表达式

例如:

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

 

2、^  参数列表 表达式

省略返回值时,如果表达式中有return语句就使用该返回值的类型,如果表达式中没有return语句就使用void类型,表达式中含有多个return语句时,所有的返回值类型必须相同

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

该源代码可省略为如下形式:

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

该 Block 语法,返回 int 型返回值。

 

3、^  表达式

如果不使用参数,参数列表也可以省略

^void (void){printf("Block\n");}

该源代码可省略为如下形式:

^{printff("Block\n");}

 

二、 block类型变量

函数指针:int (*funcprt)(int) ;

block类型变量:int (^blk)(int);

声明block类型变量仅仅是将声明函数指针类型变量的 "*" 改为 "^",与一般 C 语言变量完成相同。

1、使用 Block 语法将 Block 赋值为 Block 类型变量。

int (^blk)(int) = ^(int count){return count + 1;};

2、作为函数的参数

void func (int (^blk)(int)){.... }

3、作为函数的返回值

int (^func())(){

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

}

使用 typedef

typedef int(^blk_t)(int);

1、作为函数的参数

void func (blk_t){...}

2、作为函数的返回值

blk_t func1(){

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

}

 

转载于:https://www.cnblogs.com/Rthena/p/7414075.html

你可能感兴趣的文章
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
js兼容公用方法
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Kettle学习系列之Kettle能做什么?(三)
查看>>
Day03:Selenium,BeautifulSoup4
查看>>
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>
一些php文件函数
查看>>
有关快速幂取模
查看>>
Linux运维必备工具
查看>>
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>