block的用法, 全局变量

7 篇文章 0 订阅
<span style="font-size:24px;">#import <Foundation/Foundation.h>
//在其他文件定义的全局变量如果想在本文件中使用,则需要在本文件的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();
       
    }
    return 0;
</span>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值