Block修改变量容易被忽略的方法

C语言里面的

静态变量

静态全局变量

全局变量

 

其中静态变量和普通变量的截取模式是一样的,只是因为他赋值不被丢弃,所以能修改成功

code:

 

#import <Foundation/Foundation.h>

 

int global_val = 1;

static int static_global_val = 2;

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        static int static_val = 3;

        void (^blk)(void) = ^{

            global_val = 5;

            static_global_val = 10;

            static_val = 20;

        };

        

        blk();

        

        NSLog(@"global_val = %d", global_val);

        NSLog(@"static_global_val = %d", static_global_val);

        NSLog(@"static_val = %d", static_val);

    }

    return 0;

}

posted @ 2017-03-10 21:39  三江汇流  阅读(178)  评论(0编辑  收藏  举报