美文网首页
c语言中的block

c语言中的block

作者: 冰凡513 | 来源:发表于2016-10-21 08:24 被阅读0次

//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);

}

相关文章

  • block原理

    c语言中的闭包 block解答题 block结构 唐巧之谈Objective-C block的实现

  • Objective-C界面传值(三):Block传值

    Block传值 Block,很像C语言中的函数指针,举个例子 不过在使用block时,因为block的声明格式比较...

  • c语言中的block

    //block块(数据类型) 封装的一段具有特定功能的代码段 //函数有函数名,block没有名字,也可以叫做匿名...

  • 浅谈block(三)三种类型的block

    Block存储域 在 Objective-C 语言中,一共有 3 种类型的 block Block的类 三种blo...

  • Swift 闭包

    闭包 它类似于 C、Objective-C 语言中的 block 或其他一些语言中的匿名函数。 闭包格式 注意: ...

  • iOS底层之Block

    一、Block定义 Block是什么?Block是一个带自动变量的匿名函数,大家知道C语言中没有匿名函数,所以可以...

  • 存储类型说明符

    C语言中的存储类型说明符 typedef extern static auto register __block说...

  • 【iOS】Block

    Block 代码块 类似于指针 指向一块代码 Block是Objective C语言中的对象 但是与NSObjec...

  • Block语法

    block定义 block类似于c语言中的函数指针,其定义方式为:返回值类型 (blockName)(参数列表)=...

  • C语言中的Block函数

    作用: 1.block封装了一段代码,可以在任意时候调用执行2.block可以作为函数参数或者函数的返回值,而本身...

网友评论

      本文标题:c语言中的block

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