美文网首页
OC语言day06-13Block和typedef结合使用

OC语言day06-13Block和typedef结合使用

作者: liyuhong165 | 来源:发表于2016-06-20 00:25 被阅读539次

    pragma mark Block和typedef结合使用

    pragma mark 概念

    /**
     #pragma mark 1.使用typedef 定义 指向函数的指针
     typedef int (*calculte)(int,int);// 只要是返回int 带有两个参数的都可以使用
     
     #pragma mark 2.使用typedef 为 Block 起别名
     // 注意: 利用typedef给block起别名, 和指向函数的指针一样,block变量的名称 就是别名
     typedef int (^calculteBlock) (int,int);
     
     */
    

    pragma mark 代码

    #import <Foundation/Foundation.h>
    #pragma mark 类
    
    #pragma mark 加减法函数
    int sum (int value1, int value2)
    {
        return value1 + value2;
    }
    
    int minus (int value1, int value2)
    {
        return value1 - value2;
    }
    
    #pragma mark 1.使用typedef 定义 指向函数的指针
    typedef int (*calculte)(int,int);// 只要是返回int 带有两个参数的都可以使用
    
    #pragma mark 2.使用typedef 为 Block 起别名
    // 注意: 利用typedef给block起别名, 和指向函数的指针一样,block变量的名称 就是别名
    typedef int (^calculteBlock) (int,int);
    
    
    #pragma mark main函数
    int main(int argc, const char * argv[])
    {
    #warning 1.加法 指向函数的指针
        // 定义一个 指向函数 的 指针
        int (*sumP)(int,int);
        // 指针 指向函数
        sumP = sum;
        // 通过指针 调用函数
        NSLog(@"sum = %i",sumP(30,10));
              
    #warning 2.减法 指向函数的指针
        // 定义一个 指向函数 的 指针
        int (*minusP)(int,int);
        // 指针 指向函数
        minusP = minus;
        // 通过指针 调用函数
        NSLog(@"minus = %i",minusP(25,10));
        
    #warning 3.使用typedef 定义指向函数的指针(加法) (缩短了定义 指向函数的指针)
        // 定义一个 指向函数 的 指针 并且 指向了函数
        calculte sumP1 = sum;
        // 通过指针 调用函数
        NSLog(@"sum1 = %i",sumP1(40,10));
    
    #warning 4.使用typedef 定义指向函数的指针(减法) (缩短了定义 指向函数的指针)
        // 定义一个 指向函数 的 指针 并且 指向了函数
        calculte minusP1 = minus;
        // 通过指针 调用函数
        NSLog(@"minus1 = %i",minusP1(40,10));
    
    #pragma mark Block
    #warning 1.加法Block
        int (^sumBlock) (int,int);
        sumBlock = ^(int value1,int value2){
            return value1 + value2;
        };
        NSLog(@"sumBlock = %i",sumBlock(33,22));
        
    #warning 2.减法Block
        int (^minusBlock) (int,int);
        minusBlock = ^(int value1,int value2){
            return value1 - value2;
        };
        NSLog(@"minusBlock = %i",minusBlock(33,22));
    
    #warning 3.使用typedef 给Block起别名 (加法)
        calculteBlock sumBlock1  = ^(int value1,int value2){
            return value1 + value2;
        };
        NSLog(@"sumBlock1 = %i",sumBlock1(44,22));
    
    #warning 3.使用typedef 给Block起别名 (减法)
        calculteBlock minusBlock1  = ^(int value1,int value2){
            return value1 - value2;
        };
        NSLog(@"minusBlock1 = %i",minusBlock1(44,22));
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:OC语言day06-13Block和typedef结合使用

          本文链接:https://www.haomeiwen.com/subject/idabdttx.html