c语言中block做函数参数,c语言中的block

//block块(数据类型) 封装的一段具有特定功能的代码段

//函数有函数名,block没有名字,也可以叫做匿名函数;函数不能做参数传递,block可以作为参数传递;

//形式:

/* 返回值类型,(^ block变量名)(参数列表)=^(参数列表){    代码段    return(如果) } */

//调用

//block变量名

//return(如果返回值类型不是void,就将返回值return出去)

//diyBlock是给int(^)(int a,int b)这种block类型定义的一个新名字,以后我们使用divBlock就表示int(^)(int a,int b)这个类型

typedefint(^divBlock)(inta,intb) ;

#import

intmain(intargc,constchar* argv[]) {

@autoreleasepool{

}

}

//定义一个block#importvoid demo0();

void demo4();

//void demo1();

int main(int argc, const char * argv[]) {

@autoreleasepool {

//      无参无返的block

//        调用一个block

//demo0();

//demo1();

demo4();

}

return 0;

}

//wucanwufan

//      写一个block ,用for循环,打印三遍Hello Word

void demo0(){

void (^hi)() = ^(){

for(int i = 0; i <= 3; i++){

NSLog(@"Hello Word!\n");

}

};

hi();

}

//这是一个有参无返的block;

/*

void (^block名)(参数列表)= ^(参数列表)

*/

//        定义一个block,用for循环打印三次hello word,n,用键盘该输入

void demo1(){

void (^daying)(int n) = ^(int n){

for(int i = 0; i <= n; i++){

printf("Hello Word!\n");

}

};

int n;

printf("请输入n\n");

scanf("%d",&n);

daying(n);

}

//无参有返的block

/*

返回值类型(^block名)() = ^(){}

*/

void demo3(){

//      无参有返

int (^peopleCount)() = ^(){

return 28;

};

//        bolck调用

int count = peopleCount();

NSLog(@"count = %d",count);

//        定义一个block返回字符串

char *(^string)() = ^(){

return "Hello";

};

//调用

char *str = string();

NSLog(@"str = %s",str);

}

//定义一个新的名字

typedef int(^diyBlock)(int a, int b);

void demo4(){

//        写4个block,来做四则运算,a、b是通过键盘输入

diyBlock jian = ^(int num1, int num2){

if (num1 > num2) {

return num1 - num2;

}else{

return num2 - num1;

}

};

diyBlock add = ^(int a, int b){

return  a + b;

};

diyBlock cheng = ^(int a, int b){

return a * b;

};

diyBlock chu = ^(int a, int b){

if (b == 0) {

NSLog(@"除数不能为0");

return 0;

}else{

return a / b;

}

//    int (^add)(int a, int b) = ^(int a, int b){

//        return  a + b;

//    };

//

//    int (^cheng)(int a, int b) = ^(int a, int b){

//        return a * b;

//    };

//

//    int (^chu)(int a, int b) = ^(int a, int b){

//        if (b == 0) {

//            NSLog(@"除数不能为0");

//            return 0;

//        }else{

//            return a / b;

//        }

};

int a;

int b;

NSLog(@"请输入两个整数\n");

scanf("%d%d",&a,&b);

int num =  add(a,b);

NSLog(@"整数之和为:%d",num);

int num1 =  chu(a,b);

NSLog(@"整数相除为:%d",num1);

int num2 =  cheng(a,b);

NSLog(@"整数相乘为:%d",num2);

int num3 =  jian(a,b);

NSLog(@"整数相减为:%d",num3);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 多维list 排序_一行代码的优雅| Python列表生成式

欢迎回来&#xff0c;上一周我们整理了基础课中三大结构有关内容的具体应用及案例。可以通过以下几篇推文进行回溯&#xff1a;Python语言基础50课我的Python - 100天笔记 |D1-D7我的Python - 100天笔记 |D8-D14列表是Python中非常常见的数据结构&#xff0c;在基础课中也占了不…

c语言高斯白序列x,C语言程序设计程设计指导书(晓庄).doc

C语言程序设计程设计指导书(晓庄)C语言程序设计课程设计任务书南京晓庄学院数学与信息技术学院2011-9-20一、C语言程序设计课程设计的目的说明1)复习巩固C语言的基础知识&#xff0c;进一步加深对C语言编程的理解和掌握&#xff1b;2)利用所学知识&#xff0c;理论和实际结合锻…

arduino智能风扇系统

研究方法与思路&#xff1a; 我们小组一开始找的是一个别人做好的项目&#xff0c;按键控制风扇挡位&#xff0c;不同挡位对应不同LED灯。但是实现过程中存在bug。而且仅仅通过按键控制风扇着实有局限性&#xff0c;因此我觉定用串口控制风扇开关的模式&#xff0c;输入1&…

verilog 生成块_如何高效的编写Verilog——终极版

为了高效的编写Verilog&#xff0c;通常有些编辑器插件可以自动生成代码&#xff0c;比如自动端口定义&#xff0c;自动连线&#xff0c;自动实例化等等。公司的环境有很好用的自动化插件&#xff0c;想给自己的电脑也整个怎么做。比如Emacs中有个插件叫verilog-mode。但是博主…

arduino串口输入改变模式模块

最新更新: 当时太嫩&#xff0c;做这个不知道arduino还有中断的方法&#xff0c;利用中断的方法可以比下面这种循环判断的方法更简单。 最近做了不少arduino智能系统&#xff0c;我发现在与用户交互的过程中&#xff0c;经常用到&#xff1a;通过在串口输入不同的值达到手动控…

android悬浮动态权限,Android 获取判断是否有悬浮窗权限的方法

现在很多应用都会用到悬浮窗&#xff0c;很多国产rom把悬浮窗权限加入控制了&#xff0c;你就需要判断是否有悬浮窗权限&#xff0c;然后做对应操作。Android 原生有自带权限管理的&#xff0c;只是被隐藏了。看android源码在android.app下就有个AppOpsManager类。类说明如下&a…

剩余 大小 查看内存_JVM的内存分配策略以及进入分代的条件

JVM的参数和知识点太多啦&#xff0c;记录下来&#xff0c;供自己随时回顾。java对象什么时候进入年轻代&#xff08;新生代&#xff09;&#xff1f;java对象什么时候进入老年代&#xff1f;对象优先在Eden分配大对象直接进入老年代空间分配担保机制java对象什么时候进入年轻代…

Arduino的串口结束符及串口缓冲区

文章目录1.深入理解缓冲区和Serial.available()&#xff1a;2.深入理解串口结束符3.验证结论&#xff1a;1.深入理解缓冲区和Serial.available()&#xff1a; 运行下面的代码&#xff0c;我发现如果不在串口输入任何数字&#xff0c;就会一直显示“no”&#xff0c;输入一个数…

android 圆角边框边框渐变,支持边框、圆角、渐变色、透明度的GradientButton

最近在项目中发现好多Button背景颜色相同&#xff0c;但圆角大小不等的Button&#xff0c;这样就得写一大堆的shape或者selector&#xff0c;不便于管理及后期维护&#xff0c;于是乎变想能不能写一个支持边框、圆角、渐变色、透明度的万用Button呢。为了能够兼容button自带的属…

(斜率,点和线段)zzuli1196数星星(二)

题目描述 一天&#xff0c;小明坐在院子里数星星&#xff0c;Gardon就出了个难题给他&#xff0c;让他数数天上的星星最多有多少个是在同一条直线上的。天上的星星太多了&#xff0c;小明马上就看花了眼&#xff0c;你能写个程序来帮他计算么&#xff1f; 输入 首先输入一个整…

鸿蒙ide如何运行,深入浅析华为鸿蒙IDE安装与Hello World

一、系统安装1. 到官网下载HUAWEI DevEco Studio2. 安装二、创建项目创建项目目前还没有手机选项&#xff0c;所以我先选择一个电视&#xff1a;IDE的环境看起来和idea差不多&#xff0c;应该比较容易上手。从“关于”里也可以看到&#xff0c;确实是基于IDEA开源版本开发的。我…

springboot 上传文件解析入库_SpringBoot + easyexcel + WebUploader 实现文件上传并解析

1. WebUploader的使用&#xff0c;引入css和js&#xff0c;css其实没什么用&#xff1a;2. 定义上传框&#xff1a;选择文件开始上传3.相关jquery&#xff1a;// 文件上传jQuery(function() {var $ jQuery,$list $(#thelist),$btn $(#ctlBtn),state pending,uploader;uploa…

中快捷搜索_同事用1分钟,我用半小时,原来是因为这8个Word快捷键,秒杀一切办公技巧...

同事用1分钟&#xff0c;我用半小时&#xff0c;这8个Word快捷键&#xff0c;秒杀一切办公技巧​mp.weixin.qq.com文&#xff5c;王羽卒今天给小伙伴们分享几个实用又有效的快捷键&#xff0c;帮助快速完成工作&#xff0c;同事用了半小时&#xff0c;你1分钟就能解决哟&#x…

动态规划理论基础

(采用维特根斯坦的表述方式) 1.达成目的过程可以由不同阶段组成 2.阶段由达成目的的条件确定 (注&#xff1a;规定每一次走一步&#xff0c;第一步就是一个阶段) 3.每个阶段由不同的状态组成 4.状态是阶段中可能面临的所有情况 (注&#xff1a;第一步落脚点可能有多个&am…

荣耀x10max能不能升级为鸿蒙,荣耀终于放出大招!4部荣耀旗舰可升级鸿蒙,网友:终于等到了...

4月24~26日&#xff0c;华为将召开开发者大会&#xff0c;届时手机使用的鸿蒙系统将正式上线&#xff0c;华为和部分荣耀手机将会首先支持。其实&#xff0c;早在2月22日的华为Mate X2的发布会上&#xff0c;余承东就说过4月发布鸿蒙OS。华为并不想推出鸿蒙系统&#xff0c;如果…

android 7.0新增控件,自定义Android控件,封装Arcgis for Android测距测面积工具控件

控件的功能包括&#xff0c;测距、测面积、撤销、恢复、清除、完成六个功能。测距&#xff1a;在地图上绘制线段进行长度测量测面积&#xff1a;在地图上绘制一个面&#xff0c;进行面积测量撤销&#xff1a;撤销到上一步绘制&#xff0c;只能撤销未完成的测量恢复&#xff1a;…

cpython需要另外安装吗_在windows环境下安装和使用Python(CPython)

在windows环境下安装和使用Python(CPython)一、下载1.选择Python版本打开Windows版Python官网下载链接&#xff0c;选择Latest Python 3 Release - Python 3.8.3 。(推荐选择Python3.x&#xff0c;也可以选择其他版本)2.选择需要的Python类型在File中选择Windows x86-64 execut…

python模块:命名空间与重载模块

文章目录模块命名空间&#xff1a;重载模块&#xff1a;#module2.py print(starting to load...) import sys name42 def func():pass class klass:pass print(done loading.) >>> import module2 starting to load... done loading. >>> module2.sys <mo…

哪个html在大部分浏览器下是不隐藏的,前端浏览器兼容性问题总结

市场上浏览器种类很多&#xff0c;不同浏览器的内核也不尽相同&#xff0c;所以各个浏览器对网页的解析存在一定的差异。浏览器内核主要分为两种&#xff0c;一是渲染引擎&#xff0c;另一个是js引擎&#xff0c;内核更加倾向于说渲染引擎。常见的浏览器内核可以分四种&#xf…

多媒体分析与理解_如何设计一个出色的数字多媒体展厅?

展厅设计方案是了解每个多媒体设备的应用方法&#xff0c;那么如何让设备跟展厅结合一起&#xff0c;展示出我们想要的科技效果&#xff0c;核心就是用户体验度。今天华南数字科技的小编就为您介绍下数字多媒体展厅对用户体验方面的几个重点要素。1、细节展示不论多前卫的多媒体…