news 2026/8/20 3:52:38

wow-check判断语句操作说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
wow-check判断语句操作说明

wow-check文件说明

  • 项目地址:https://github.com/wow-iot3/wow_linux_eval
  • 本文件的初衷是消除在语句执行过程中的if的判断跳转语句,让代码看着更更简洁。
    1)其内容包含:是否有打印信息、是否存储为log日志、是否设置错误码等。
    2)而判断语句的执行包含continue、break、goto、return等跳转操作。
    下面给出打印信息部分实例,其它具体实现可直接参考wow_check.h实现;

check语句宏定义

#define CHECK_RET_GOTO_P(x,out,args...) \ do { \ if (!(x)) { \ printf("assertion failed %s: %d:", __FILE__, __LINE__);\ printf(args); \ goto out; \ } \ } while(0); #define CHECK_RET_VAL_P(x,v,args...) \ do { \ if (!(x)) { \ printf("assertion %s: %d:", __FILE__, __LINE__); \ printf(args); \ return v; \ } \ } while(0);
原语句实现方式:
int goto_func_demo(void){ char* data1 = NULL; char* data2 = NULL; char* data3 = NULL; char* data4 = NULL; data1 = malloc(1024); if(data1 == NULL){ printf("malloc 1024 Byte failed!\n"); return -1; } data2 = malloc(1024); if(data2 == NULL){ printf("malloc 1024 Byte failed!\n"); free(data1); return -1; } data3 = malloc(1024); if(data3== NULL){ printf("malloc 1024 Byte failed!\n"); free(data2); free(data1); return -1; } data4 = malloc(1024); if(data4 == NULL){ printf("malloc 1024 Byte failed!\n"); free(data3); free(data2); free(data1); return -1; } return 0; }
使用check语句实现方式:
int goto_func_demo(void){ char* data1 = NULL; char* data2 = NULL; char* data3 = NULL; char* data4 = NULL; data1 = malloc(1024); CHECK_RET_VAL_P(data1,-1,"malloc 1024 Byte failed!\n"); data2 = malloc(1024); CHECK_RET_GOTO_P(data2,out1,"malloc 1024 Byte failed!\n"); data3 = malloc(1024); CHECK_RET_GOTO_P(data3,out2,"malloc 1024 Byte failed!\n"); data4 = malloc(1024); CHECK_RET_GOTO_P(data4,out3,"malloc 1024 Byte failed!\n"); return 0; out3: free(data3); out2: free(data2); out1: free(data1); return -1; }
使用后代码明显简介,而代码函数块行数由原来的36行调整到24行。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 3:52:02

数字图像加密关键技术的研究与实现(Python)

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1研究背景及意义 1 1.1.1研究背景 1 1.1.2研究意义 1 1.2国内外相关研究现状及发展趋势 2 1.2.1国内相关研究现状 2 1.2.2国外相关研究现状 3 1.2.3发展趋势 3 1.3论文研究内容 4 第2章 DES算法原理 6 2.1 DES简介 6 2.2 DES的加密…

作者头像 李华
网站建设 2026/8/20 3:52:35

Python 基础知识

易错点电脑基础知识定义学生关系模式如下:Student (S#, Sn, Ssex,class,monitorS#)(其属性分别为学号、学生名、性别、班级和班长学号)在关系模式中,如果Y -&…

作者头像 李华
网站建设 2026/7/14 16:26:38

VM虚拟机使用的镜像文件下载

文章目录Windows系统进入微软官网下载工具以Windows10为例下载镜像文件Linux 系统Windows系统 进入微软官网下载工具 微软中国官网:https://www.microsoft.com/zh-cn/ 以Windows10为例下载镜像文件 选择下载的路径 开始下载 安装windows10操作系统出现Time out问题…

作者头像 李华
网站建设 2026/7/14 16:26:50

Audio Shop 项目常见问题解决方案

Audio Shop 项目常见问题解决方案 【免费下载链接】audio_shop Your friendly neighbourhood script for mangling images or video using audio editing tools 项目地址: https://gitcode.com/gh_mirrors/au/audio_shop 项目基础介绍 Audio Shop 是一个开源项目&#…

作者头像 李华