Block和typedef

本文介绍了Objective-C中函数指针的应用及Block的使用方法,包括如何定义和调用函数,如何通过函数指针和Block实现灵活的代码组织。同时对比了函数指针和Block在实际应用中的异同。
//
//  main.m
//  OC语言学习


#import <Foundation/Foundation.h>

int sum(int value1, int value2)
{
    return value1 + value2;
}

int minus(int value1, int value2)
{
    return value1 - value2;
}

typedef int (*calcute)(int,int);
//注意:利用typedef给block起别名,和指向函数的指针一样,block的变量的名称就是别名
typedef int (^calcuteBlock)(int,int);

int main(int argc, const char * argv[]) {
   
    //1.指向函数的指针
    int (*sumP)(int,int) = sum;
    NSLog(@"sum = %i",sumP(10,20)); //sum = 30
    
    //2.使用typedef的方式
    calcute minusP = minus;
    NSLog(@"minus = %i",minusP(20,10)); //minus = 10
    
    //3.使用block
    int (^sumBlock)(int,int) = ^(int value1,int value2){
        return value1 + value2;
    };
    NSLog(@"sum = %i",sumBlock(99,11)); //sum = 110
    
    
    calcuteBlock minusBlock = ^(int value1,int value2){
        return value1 - value2;
    };
    NSLog(@"minus = %i",minusBlock(100,10)); //minus = 90
    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值