前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数指针与block[通俗易懂]

函数指针与block[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-29 18:01:32
1800
发布2022-07-29 18:01:32
举报
文章被收录于专栏:全栈程序员必看

#1. 给普通的指针赋值

代码语言:javascript
复制
int projectCount = 1;
int *intPtr = &projectCount;

#2. 函数的名称就是函数的地址

代码语言:javascript
复制
int func(int count)
{
return count * 2;
}
int (*funcPtr)(int) = func;

#3. 函数的参数是: 指向函数的指针

代码语言:javascript
复制
typedef int (*blk_c)(int);

// 3.1 直接方式
int func_para_c (int (*blk_c)(int))
{
  return 3;
}

// 3.1 间接方式
int func_para_c_d (blk_c blk)
{
  return 3;
}

#4. 函数的参数是: block

代码语言:javascript
复制
 typedef int (^blk_t)(int); // 定义block变量

// 4.1 直接方式
int func1(int (^blk)(int))
{
    return 3;
}

// 4.1 间接方式
int func11(blk_t blk)
{
    return 3;
}

#5. 函数的返回值是: 指向函数的指针

代码语言:javascript
复制
// 5.1 直接方式
int (*func_ret_c())(int) // 其中func_ret_c()是整个函数的骨架.
{
    int (*funcPtr)(int) = func;
    return funcPtr;
//    return func; 也可以直接返回函数的名称作为地址
}

// 5.2 间接方式
blk_c func_ret_c_d()
{
    return func;
}

#6. 函数的返回值是: block

代码语言:javascript
复制
  // 6.1 直接方式
int (^func_ret_t())(int)
{
  return ^(int count){return count * 2 ;};
}

// 6.2 间接方式
blk_t func_ret_t_d()
{
    blk_t blV = ^(int count){return count * 2 ;};
    return blV;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档