C的回调函数:

callBack.h

1)、声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数。

void DSTCount(void(*CallBack)(int data_i32));

callBack.c

1)、在doSomeThingCount函数,对运行次数自增,并调用参数--函数。

void DSTCount(void(*CallBack)(int data_i32))
{
static int numb = 0;
numb++;
(*CallBack)(numb);
}

 

main.c

1)、定义一个customdoSomeThingCount函数,打印数据。

void customDSTCount(int data_i32)
{
printf("%d\n",data_i32);
}

2)、main函数里,运行 callBack.h 的 DSTCount 函数,参数为main里的customDSTCount函数。

while (1)
{
DSTCount(customDSTCount);
}

OC的Block:

MyButton.h(继承于UIButton):

1)、定义一个Block的参数数量、类型。

typedef void(^ButtonBlock)(int data_i32);

2)、声明一个doSomeThingCount函数,带Block参数。(注意,这里不需要加*,类用习惯了,参数随手就加个*)

-(void)DSTCount:(ButtonBlock)myButtonBlockPTR;

MyButton.m(继承于UIButton):

1)、在doSomeThingCount函数,对运行次数自增,并调用Block参数。

-(void)DSTCount:(ButtonBlock)myButtonBlockPTR
{
static int numb = 0;
numb++;
myButtonBlockPTR(numb);
}

 

RootViewControl.m(self.window.rootViewController):

1)、viewDidLoad函数,定义一个(100,100,100,100)、红色的按钮实例,按钮添加事件,把按钮加到self.view上。

MyButton *tempButton = [[MyButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

tempButton.backgroundColor = [UIColor redColor];

[tempButton addTarget:self action:@selector(mybuttonClick:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:tempButton];

2)、按钮点击调用,调用MyButton里的DSTCount函数,Block参数直接输入。

-(void)mybuttonClick:(MyButton*)button
{
[button DSTCount:^(int data_i32) {
printf("%d\n",data_i32);
}];
}

图片补充:

C回调函数:

1)、CallBack.C

2)、CallBack.h

3)、main.c

OC的Block

1)、MyButton.h

2)、MyButton.m

3)、RootViewControl.m

4)、运行

嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比的更多相关文章

  1. magento controller直接渲染Block 以及传参

    class Jago_Deal_IndexController extends Mage_Core_Controller_Front_Action { public function ajaxActi ...

  2. js addEventListener调用传参函数

    先看这段代码 function abc(key){ console.log(key); } for(let i=0;i<oInput.length;i++){ oInput[i].addEven ...

  3. Python学习教程(learning Python)--2.3.1 Python传参函数设计

    本节主要讨论设计传递多个参数子函数的设计方法. 在2.3节里我们讨论了如何自己设计一个带参数的子函数的设计方法,现在我们研究一下如何传递两个及以上参数的设计方法. 函数为何要带参数呢?其实原因很简单, ...

  4. Python学习教程(learning Python)--2.3 Python自定义函数传参函数设计

    Python里自定义子函数时,可以在调用时携带一些参数到子函数里去处理.具体用法结构如下: def func(arguments): statement statement etc. 定义子函数一定要 ...

  5. js中给函数传参函数时,函数加括号与不加括号的区别

    <!doctype html><html><head><script> function show() { alert("123") ...

  6. Python学习入门基础教程(learning Python)--2.3.1 Python传参函数设计

    本节主要讨论设计传递多个参数子函数的设计方法. 在2.3节里我们讨论了如何自己设计一个带参数的子函数的设计方法,现在我们研究一下如何传递两个及以上参数的设计方法. 函数为何要带参数呢?其实原因很简单, ...

  7. PHP_零基础学php_3PHP函数、传参函数、默认参数、函数返回值

    <?php function say_hello() //无参数 { $name="tang"; echo "hello,".$name; echo &q ...

  8. JavaScript去除空格的三种方法(正则/传参函数/trim)

    方法一: 个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 其次.这个方法使用了JavaScript 的prototype 属性 其实你不使用这个属性一样可以用函数实现.但这样做后用起来比较 ...

  9. python 基础 4.0 函数的一般形式及传参

    #/usr/bin/python #coding=utf-8 #@Time   :2017/10/23 15:58 #@Auther :liuzhenchuan #@File   :函数的一般形式.p ...

随机推荐

  1. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  2. 奇异值分解(SVD)原理与在降维中的应用

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...

  3. 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...

  4. 带你实现开发者头条APP(四)---首页优化(加入design包)

    title: 带你实现开发者头条APP(四)---首页优化(加入design包) tags: design,Toolbar,TabLayout,RecyclerView grammar_cjkRuby ...

  5. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  6. Velocity初探小结--Velocity在spring中的配置和使用

    最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术, ...

  7. .Net语言 APP开发平台——Smobiler学习日志:如何快速在手机上实现ContextMenu

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 样式一 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的&qu ...

  8. 你所能用到的BMP格式介绍

    原理篇: 一.编码的意义. 让我们从一个简单的问题开始,-2&-255(中间的操作符表示and的意思)的结果是多少,这个很简单的问题,但是能够写出解答过程的人并不 多.这个看起来和图片格式没有 ...

  9. 微信小程序开发日记——高仿知乎日报(上)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  10. SQL数据类型

    1.Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多8,000个字符. n varchar(n) 可变长度的字符串.最多8,000个字符.   varchar ...