Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。
函数指针的格式和block的格式基本相同
函数指针:
返回值类型(*指针变量名)(参数列表)
block
返回值类型(^block变量名)(参数列表)
用typedef语法起别名格式
typedef 原来的数据类型 别名;
typedef起别名的格式下图是用typedef对int类型起别名别名为PMInt类型,第二个吧int类型起别名为a。
同样,用typedef对函数指针起别名,下图是两个返回值和参数不同的指针函数的返回值的起别名。
如果让大家用typedef给block类型声明一个别名
语法:typedef 返回值类型 (^别名)(参数列表)
block和函数一样,有四种,有参有返回值,有参无返回值,无参有返回值,无参无返回值的定义。
对block起完别名之后接下来就是调用了。
BlockType3 blk2 = ^void(int a,int b){ // 这个block实现的是两个变量的求和,返回值为空
NSLog(@"%d",a+b); //输出两个变量的和
};
blk2(125,125); //调用block
使用了typedef,能够让程序看起来更简洁,明了!