#import <Foundation/Foundation.h>
void test() {
NSLog(@"TEST");
}
int sum(int a, int b) {
return a +b;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 函数指针
void (*my)() = test;
my();
// block就是弥补了指向函数的指针,不能够直接保存一个函数体(代码块)
void (^my1)() = ^{
NSLog(@"TESTS1");
};
my1();
int (^sumBlock)(int a, int b) = ^int (int a, int b) {
return a + b;
};
int sum = sumBlock(2, 5);
NSLog(@"%d", sum);
NSLog(@"Hello, World!");
}
return 0;
}
//---------------------------------------------自己-----------------------
总结:(1)block类型就是为了简化函数指针的,非常像匿名函数;
(2)既然是类型就可以当作参数进行传递,当作返回值进行返回;
(3)例子中显示了如何调用和定义,无参的和有参数有返回值的;