ios oc 代码 转换为 c++ 描述代码编译过程

clang -rewrite-objc main.m

#import <Foundation/Foundation.h>
#import <objc/runtime.h>

// clang -rewrite-objc main.m
// 生成main.m转成C\C++后的代码

//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);
}

 

posted @ 2015-10-13 18:58  吃饭了吗  阅读(1590)  评论(0编辑  收藏  举报