clang -rewrite-objc main.m
#import <Foundation/Foundation.h> #import <objc/runtime.h> // clang -rewrite-objc main.m // 生成main.m转成CC++后的代码 //int age = 20; int main(int argc, const char * argv[]) { @autoreleasepool { // c plus plus // NSArray *array = [[NSArray alloc] init]; // [array count]; // 定义age变量 // __block int age = 20; static int age = 20; // 定义一段代码 void (^block)() = ^{ // 这种情况下, 是将&age传进来了 // age is 30 NSLog(@"age is %d", age); }; // 修改age变量 age = 30; block(); } return 0; } void testBlock2() { // 定义age变量 int age = 20; // 定义一段代码 void (^block)() = ^{ // 这种情况下, age是值传递 // age is 20 NSLog(@"age is %d", age); }; // 修改age变量 age = 30; block(); } void testBlock() { // static int age = 20; __block int age = 20; void (^block)() = ^{ age = 30; }; block(); NSLog(@"%d", age); }