博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bock 基础知识
阅读量:5940 次
发布时间:2019-06-19

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

Blocks 是C语言的扩充功能,带有自动变量的匿名函数。
 
C 函数指针类型变量 vs Block 类型变量
 
C 函数指针类型变量 Block 类型变量
返回值类型 方法名 参数列表 表达式
int func(int count) 
{
     return count + 1;
}
^返回值类型 参数列表 表达式
^int (int count)
{
     return count+1;
}
声明函数指针类型变量
int (*funcptr)(int);
声明Block类型变量
int (^blk) (int);
将定义的函数地址赋值给函数指针类型变量
int (*funcptr)(int) = &func;
使用Block 语法将Block 赋值给Block类型变量
int (^blk) (int) = ^int (int count) {return count+1;};
 
完整的Block 语法和一般的C语言函数定义相比,仅有两点不同:
(1)没有函数名
(2)带有“^”
 
 
在函数参数和返回值中使用Block类型变量的记述比较
 
不是要typedef 声明Block 类型
使用typedef 声明Block 类型
typedef int (^blk_t) (int);
void func(int (^blk)(int))
{}
void func(blk_t blk)
{}
int (^func())(int)
{
     return ^int (int count) {return count+1;};
}
blk_t func()
{
     blk_t blk = ^int (int count) {return count+1;};
     return blk;
}
 
 
 

转载于:https://www.cnblogs.com/shuleihen/p/4353947.html

你可能感兴趣的文章
英国拟在其国内建立一套互联网过滤网
查看>>
加大力度改革 成都公安提高服务金融安防建设能力
查看>>
从创业到成功,SaaS巨头Salesforce靠的是这七大秘诀
查看>>
CJIS安全政策:企业如何确保FIPS合规性?
查看>>
对云计算的忽视是 银行的战略失误
查看>>
80个招聘求职网站整理,不管招聘or求职,看这个就够了!
查看>>
城市WiFi好看还应该好用
查看>>
从全球最大光伏展看中国光伏行业:火爆的背后是什么?
查看>>
通过数据挖掘组织营销潜力的三个重要途径
查看>>
世界银行拨款2293万美元支持印度并网屋顶太阳能
查看>>
中国电信制定物联网策略:规模市场自主经营 长尾市场集成
查看>>
希捷撤离 硬盘的那些风花雪月记忆
查看>>
人工智能数据中心
查看>>
QA请勿忘初心
查看>>
协作与大数据构建新型打假模式
查看>>
崛起的中国服务器市场迎来旺盛的SPEC测试需求
查看>>
7月17日云栖精选夜读:深度 | 两个案例,掌握AI在大数据领域的前沿应用
查看>>
蚂蚁财富联手百会CRM全面升级金融服务
查看>>
视频转成flv格式
查看>>
英特尔分拆McAfee:31亿美元将多数股权卖给投资公司TPG
查看>>