zoukankan      html  css  js  c++  java
  • Bock 基础知识

    Blocks 是C语言的扩充功能,带有自动变量的匿名函数。
     
    C 函数指针类型变量 vs Block 类型变量
     
    C 函数指针类型变量 Block 类型变量
    返回值类型 方法名 参数列表 表达式
    int func(int count) 
    {
         return count + 1;
    }
    ^返回值类型 参数列表 表达式
    ^int (int count)
    {
         return count+1;
    }
    声明函数指针类型变量
    int (*funcptr)(int);
    声明Block类型变量
    int (^blk) (int);
    将定义的函数地址赋值给函数指针类型变量
    int (*funcptr)(int) = &func;
    使用Block 语法将Block 赋值给Block类型变量
    int (^blk) (int) = ^int (int count) {return count+1;};
     
    完整的Block 语法和一般的C语言函数定义相比,仅有两点不同:
    (1)没有函数名
    (2)带有“^”
     
     
    在函数参数和返回值中使用Block类型变量的记述比较
     
    不是要typedef 声明Block 类型
    使用typedef 声明Block 类型
    typedef int (^blk_t) (int);
    void func(int (^blk)(int))
    {}
    void func(blk_t blk)
    {}
    int (^func())(int)
    {
         return ^int (int count) {return count+1;};
    }
    blk_t func()
    {
         blk_t blk = ^int (int count) {return count+1;};
         return blk;
    }
     
     
     
  • 相关阅读:
    接口测试框架——第五篇-测试用例和运行用例
    接口测试框架——第四篇-url、excel内容等
    flex布局
    JSON 对象 与 字符串 互转
    nginx 拒绝本地ip访问
    supervisord
    工作中小玩意
    nginx 反向代理
    php获取当月天数及当月第一天及最后一天
    Homebrew 备忘
  • 原文地址:https://www.cnblogs.com/shuleihen/p/4353947.html
Copyright © 2011-2022 走看看