pragma mark Block和typedef結(jié)合使用
pragma mark 概念
/**
#pragma mark 1.使用typedef 定義 指向函數(shù)的指針
typedef int (*calculte)(int,int);// 只要是返回int 帶有兩個(gè)參數(shù)的都可以使用
#pragma mark 2.使用typedef 為 Block 起別名
// 注意: 利用typedef給block起別名, 和指向函數(shù)的指針一樣,block變量的名稱 就是別名
typedef int (^calculteBlock) (int,int);
*/
pragma mark 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
#pragma mark 加減法函數(shù)
int sum (int value1, int value2)
{
return value1 + value2;
}
int minus (int value1, int value2)
{
return value1 - value2;
}
#pragma mark 1.使用typedef 定義 指向函數(shù)的指針
typedef int (*calculte)(int,int);// 只要是返回int 帶有兩個(gè)參數(shù)的都可以使用
#pragma mark 2.使用typedef 為 Block 起別名
// 注意: 利用typedef給block起別名, 和指向函數(shù)的指針一樣,block變量的名稱 就是別名
typedef int (^calculteBlock) (int,int);
#pragma mark main函數(shù)
int main(int argc, const char * argv[])
{
#warning 1.加法 指向函數(shù)的指針
// 定義一個(gè) 指向函數(shù) 的 指針
int (*sumP)(int,int);
// 指針 指向函數(shù)
sumP = sum;
// 通過指針 調(diào)用函數(shù)
NSLog(@"sum = %i",sumP(30,10));
#warning 2.減法 指向函數(shù)的指針
// 定義一個(gè) 指向函數(shù) 的 指針
int (*minusP)(int,int);
// 指針 指向函數(shù)
minusP = minus;
// 通過指針 調(diào)用函數(shù)
NSLog(@"minus = %i",minusP(25,10));
#warning 3.使用typedef 定義指向函數(shù)的指針(加法) (縮短了定義 指向函數(shù)的指針)
// 定義一個(gè) 指向函數(shù) 的 指針 并且 指向了函數(shù)
calculte sumP1 = sum;
// 通過指針 調(diào)用函數(shù)
NSLog(@"sum1 = %i",sumP1(40,10));
#warning 4.使用typedef 定義指向函數(shù)的指針(減法) (縮短了定義 指向函數(shù)的指針)
// 定義一個(gè) 指向函數(shù) 的 指針 并且 指向了函數(shù)
calculte minusP1 = minus;
// 通過指針 調(diào)用函數(shù)
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;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者