pragma mark Block和typedef结合使用
pragma mark 概念
/**
#pragma mark 1.使用typedef 定义 指向函数的指针
typedef int (*calculte)(int,int);// 只要是返回int 带有两个参数的都可以使用
#pragma mark 2.使用typedef 为 Block 起别名
// 注意: 利用typedef给block起别名, 和指向函数的指针一样,block变量的名称 就是别名
typedef int (^calculteBlock) (int,int);
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark 加减法函数
int sum (int value1, int value2)
{
return value1 + value2;
}
int minus (int value1, int value2)
{
return value1 - value2;
}
#pragma mark 1.使用typedef 定义 指向函数的指针
typedef int (*calculte)(int,int);// 只要是返回int 带有两个参数的都可以使用
#pragma mark 2.使用typedef 为 Block 起别名
// 注意: 利用typedef给block起别名, 和指向函数的指针一样,block变量的名称 就是别名
typedef int (^calculteBlock) (int,int);
#pragma mark main函数
int main(int argc, const char * argv[])
{
#warning 1.加法 指向函数的指针
// 定义一个 指向函数 的 指针
int (*sumP)(int,int);
// 指针 指向函数
sumP = sum;
// 通过指针 调用函数
NSLog(@"sum = %i",sumP(30,10));
#warning 2.减法 指向函数的指针
// 定义一个 指向函数 的 指针
int (*minusP)(int,int);
// 指针 指向函数
minusP = minus;
// 通过指针 调用函数
NSLog(@"minus = %i",minusP(25,10));
#warning 3.使用typedef 定义指向函数的指针(加法) (缩短了定义 指向函数的指针)
// 定义一个 指向函数 的 指针 并且 指向了函数
calculte sumP1 = sum;
// 通过指针 调用函数
NSLog(@"sum1 = %i",sumP1(40,10));
#warning 4.使用typedef 定义指向函数的指针(减法) (缩短了定义 指向函数的指针)
// 定义一个 指向函数 的 指针 并且 指向了函数
calculte minusP1 = minus;
// 通过指针 调用函数
NSLog(@"minus1 = %i",minusP1(40,10));
#pragma mark Block
#warning 1.加法Block
int (^sumBlock) (int,int);
sumBlock = ^(int value1,int value2){
return value1 + value2;
};
NSLog(@"sumBlock = %i",sumBlock(33,22));
#warning 2.减法Block
int (^minusBlock) (int,int);
minusBlock = ^(int value1,int value2){
return value1 - value2;
};
NSLog(@"minusBlock = %i",minusBlock(33,22));
#warning 3.使用typedef 给Block起别名 (加法)
calculteBlock sumBlock1 = ^(int value1,int value2){
return value1 + value2;
};
NSLog(@"sumBlock1 = %i",sumBlock1(44,22));
#warning 3.使用typedef 给Block起别名 (减法)
calculteBlock minusBlock1 = ^(int value1,int value2){
return value1 - value2;
};
NSLog(@"minusBlock1 = %i",minusBlock1(44,22));
return 0;
}