直接贴代码 --
#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;
}