码迷,mamicode.com
首页 > 其他好文 > 详细

Bock 基础知识

时间:2015-03-20 18:00:36      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

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

Bock 基础知识

标签:

原文地址:http://www.cnblogs.com/shuleihen/p/4353947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!