block的使用(二)
block的使用(二)
我爱觉觉 发表于2年前
block的使用(二)
  • 发表于 2年前
  • 阅读 13
  • 收藏 0
  • 点赞 1
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: block 的typedef

typedef int INT; // int定义别名INT

typedef int ARR[4]; ARR a1;//定义了一个长度为4的整形数组

//typedef  定义类型

// typedef 给基本数据类型 构造类型 枚举类型 函数指针 起别名

// 函数指针: 指向函数的指针


#import <Foundation/Foundation.h>


int sum(int a,int b){

    return a+b;

}


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

    @autoreleasepool {

        // 调用函数

        int s1 = sum(10, 119); // 函数名存储的是函数的首地址

        NSLog(@"%d",s1); // 129

        // 函数指针p,p指向的是sum函数的首地址

        int (*p)(int a, int b);

        p = sum; // p赋初始值

        int s2 = (*p)(10,119);

          NSLog(@"%d",s2); // 129

        

        typedef int (*p1)(int a, int b); //给返回值是int并且有2个参数的函数起别名,别名是p1p1是一种类型

        

        // 定义无参无返回值的block变量

        void (^block1)(); // block1是一个返回值是void没有参数的block变量

        block1 = ^{

            NSLog(@"hahah");

        };

        

        // 使用typedef

        typedef void(^block2)(); // 给返回值是void 没有参数的代码块起一个别名,别名是block2

//        block2 = ^{

//            NSLog(@"222");

//        };   会报错

        

        block2 bb; // bb是一个block变量

        bb = ^{

            NSLog(@"bb");

        };

        

        bb();

        

        // 给有参数没有返回值的block起别名

        typedef void(^blockType)(int); // blockType 是一个类型

        blockType b1;

        b1 = ^(int a) {

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

        };

        

        b1(10);

        

        // 给有参数有返回值的block起别名

        

        typedef int(^blockType2)(int ,int);

        blockType2 b2 = ^ (int x,int y) {

            return x + y;

        };

        

        int sum = b2(10,5);

        NSLog(@"%d",sum);

    }

    return 0;

}


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 49
码字总数 10640
×
我爱觉觉
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: