zoukankan      html  css  js  c++  java
  • c do{}while(0)

    1 goto


    bool foo(){
    int *p = (int*)malloc(5*sizeof(int));
    bool bOk = true;
    //执行并处理错误
    if(!fun1()) goto errorlable;
    if(!fun2()) goto errorlable;
    if(!fun3()) goto errorlable;
    //......
    //执行成功,释放资源并返回ture
    free(p);
    p = NULL;
    return true;
    //冗余部分的,错误返回代码
    errorlable:
    free(p);
    p = NULL;
    return false;

    ---------------------
    作者:axushilong
    来源:CSDN
    原文:https://blog.csdn.net/axushilong/article/details/79651074
    版权声明:本文为博主原创文章,转载请附上博文链接!

    2.代替goto

    bool foo(){
    //分配资源
    int *p = (int*)malloc(5*sizeof(int));
    bool bOk = true;
    //执行并处理错误
    do{
    bOk = fun1();
    if(!bOk)break;
    bOk = fun2();
    if(!bOk)break;
    bOk = fun3();
    if(!bOk)break;
    //......
    }while(0);

    //释放资源并返回bOk
    free(p);
    p = NULL;
    return bOk;
    }

  • 相关阅读:
    人 生 死 梦
    接口(三):
    接口(二):
    Mac下OpenCV开发环境配置(Terminal和Xcode)
    OcLint的使用
    分类Category的概念和使用流程
    @class
    内存管理
    点语法
    多态的概念和用法
  • 原文地址:https://www.cnblogs.com/xpylovely/p/10756582.html
Copyright © 2011-2022 走看看