- 不要等到明天弟蚀,明天太遙遠(yuǎn)勾效,今天就行動(dòng)胳螟。
須讀:看完該文章你能做什么唆垃?
1.怎么使用一個(gè)typedef定義一個(gè)block的數(shù)據(jù)類型
學(xué)習(xí)前:你必須會(huì)什么?(在這里我已經(jīng)默認(rèn)你具備C語(yǔ)言的基礎(chǔ)了)
1.什么是typedef胁住,
2.什么是block,block怎么聲明趁猴、實(shí)現(xiàn)刊咳、調(diào)用
一、本章筆記
typedef 可以給一個(gè)已知的數(shù)據(jù)類型 起一個(gè)別名(外號(hào))
二儡司、給block的數(shù)據(jù)類型起一個(gè)別名
int (^Block)(int,int) 是一個(gè)數(shù)據(jù)類型
那么使用typedef 起一個(gè)別名
typedef int (^Block)(int,int); // 別名就是Block
二娱挨、code
main.m
#pragma mark 13-Block和typedef
#pragma mark - 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
int sum(int v1,int v2)
{
return v1 + v2;
}
int minus(int v1,int v2)
{
return v1 - v2;
}
typedef int(*calculte)(int,int);
// block typedef
typedef int (^Block)(int,int);
#pragma mark - main函數(shù)
int main(int argc, const char * argv[])
{
#pragma mark 指向函數(shù)的指針 使用typedef
// int(*sumP)(int,int);
// sumP = sum;
calculte sumP = sum;
NSLog(@"sum = %i",sumP(10,20));
// int(*minP)(int,int);
// minP = minus;
calculte minP = minus;
NSLog(@"min = %i",minP(10,20));
NSLog(@"---");
#pragma mark block 使用typedef
// int (^sumBlock)(int,int);
Block sumBlock = ^(int v1 ,int v2){
return v1 + v2;
};
NSLog(@"sumBlock = %i",sumBlock(10,20));
// int (^minusBlock)(int,int);
Block minusBlock = ^(int v1 ,int v2){
return v1 - v2;
};
NSLog(@"sumBlock = %i",minusBlock(10,20));
return 0;
}