block 和 全局变量

来源:互联网 发布:java获取浏览器地址 编辑:程序博客网 时间:2024/06/05 02:00
<span style="font-size:24px;">//在其他文件定义的全局变量如果想在本文件中使用,则需要在本文件的main函数外部加上关键字extern + (int d),这样就可以使用其他文件中定义的全局变量;//在两个不同的.m文件中同时定义了同一个名称的变量,如果想在各自的文件中使用,互不影响,那么只要把他们在各自的文件中定义成一个静态全局变量就可以了,不然,两个文件(.m)同时编译,会重复,从而出错;int d = 10;//全局变量int main(int argc, const char * argv[]){    @autoreleasepool {        //int (^)(int x, int y) block变量的类型        //block-- block变量的名字        /* ^(int x, int y)        {            return x + y;        }; --- block 变量的初值,block用来存储函数,所以给block变量赋值时,赋的是整个函数的实现*/        int (^block)(int x, int y) = ^(int x, int y)        {            return x + y;        };        //当把函数的实现赋给block变量之后,block变量就可以当作函数名来使用        //求和       int sum = block(5, 10);        printf("sum = %d\n", sum);        //当在block内部使用block外部定义的局部变量时,如果变量没有被__block(两个下划线)修饰,则在block内部是readonly的,不能对他进行修改,如果想修改,变量前必须要加__block        //__block的作用告诉编译器,编译时,在block内部不要把外部变量当作常量来使用,还是当作变量使用        //如果在block中访问全局变量,就不需要__block的修饰        //__block int c = 12;        int (^block1)(int x, int y) = ^(int x, int y)        {            d = 12;            return x * d;        };        //最大值        int maxValue = block1(12,16);        printf("maxValue = %d\n", maxValue);        int (^block2)(int x, int y) = ^(int x, int y)        {            return x < y ? x : y;        };        //求最小值        int minValue = block2(12,16);        printf("minValue = %d\n", minValue);        //类型重定义        typedef  void (^Block)();         //打印        Block block4 = ^()        {             printf("vjmhvm");        };         block4();       </span>

0 0
原创粉丝点击