直接貼代碼 --
#import <Foundation/Foundation.h>
typedef int (^Sum)(int,int);
void printHelloWorld(void)
{
printf("Hello,world!\n");
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
//使用Block打印Hello,world!
void (^blk)(void) = ^{printf("Hello, World!\n");};
blk();
/*
Block語法
返回值類型 (^block名)(參數列表) = ^(參數列表){表達式}
block可以訪問外部變量,但不能改變外部變量的值,通過在變量前加__block 可以實現
改變外部變量的值
*/
//比較於函數指針
void (*funcPoint)(void) = NULL;
funcPoint = &printHelloWorld;
funcPoint();
//用typedef 定義一個block
Sum sum = ^(int x,int y){
return x + y;
};
NSLog(@"%d",sum(10,20));
}
return 0;
}