当前位置: 首页 > news >正文

淄博网站制作定制视觉wordpress改成织梦

淄博网站制作定制视觉,wordpress改成织梦,中国最厉害的互联网公司,wordpress是cms#为什么需要错误处理 大多数程序员假定错误不会发生#xff0c;并且这一乐观的思想影响了他们所用和创造的语言。 C通过返回错误码或设置全局的errno值来解决这些问题#xff0c;并且你需要检查这些值。 通过这种机制检查现存的复杂代码中#xff0c;你所执行的东西是否发生…#为什么需要错误处理 大多数程序员假定错误不会发生并且这一乐观的思想影响了他们所用和创造的语言。 C通过返回错误码或设置全局的errno值来解决这些问题并且你需要检查这些值。 通过这种机制检查现存的复杂代码中你所执行的东西是否发生错误。模式如下 调用函数如果返回值出现错误(每次必须检查)清理创建的所有资源打印出所有可能有帮助的错误信息 接下来将专注于这些步骤的实现 实现错误机制意味着每个函数调用结束后都需要3~4行额外代码太麻烦。使用一系列“调试宏”作为解决方案。 几个重要的认知 错误检查可以在代码里直接写出不过通常需要3~4行利用宏(而不是函数)来实现是由许多优势的 简洁错误处理时需要用到fileline信息如果在函数内部执行这些会得到错误信息goto函数的实现会相当麻烦 goto 可以和标签结合使用宏的使用也有相当多的技巧与函数有异曲同工之妙但在使用方式上更加灵活某些方面 宏定义 #ifndef __dbg_h__ #define __dbg_h__#include stdio.h #include errno.h //引入errno变量 #include string.h#ifdef NDEBUG //可以通过宏定义来消除所有调试信息 #define debug(M, ...) #else #define debug(M, ...) fprintf(stderr, DEBUG %s:%d: M \n, __FILE__, __LINE__, ##__VA_ARGS__)//输出错误信息文件名行号等。其中##__VA_ARGS__表示宏中... 可以类似调用printf使用debug #endif#define clean_errno() (errno 0 ? None : strerror(errno))#define log_err(M, ...) fprintf(stderr, [ERROR] (%s:%d: errno: %s) M \n, __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__)#define log_warn(M, ...) fprintf(stderr, [WARN] (%s:%d: errno: %s) M \n, __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__)#define log_info(M, ...) fprintf(stderr, [INFO] (%s:%d) M \n, __FILE__, __LINE__, ##__VA_ARGS__)#define check(A, M, ...) if(!(A)) { log_err(M, ##__VA_ARGS__); errno0; goto error; }#define sentinel(M, ...) { log_err(M, ##__VA_ARGS__); errno0; goto error; }#define check_mem(A) check((A), Out of memory.)#define check_debug(A, M, ...) if(!(A)) { debug(M, ##__VA_ARGS__); errno0; goto error; }#endif代码解释 errno.h头文件 errno不是一个库而是一个全局变量。 当调用一些系统库函数时他们可能会设置errno的值来指示错误的类型。 通常成功完成函数调用时会置零。 使用实例 #include stdio.h #include stdlib.h #include errno.hint main() {FILE *file fopen(nonexistent_file.txt, r);if (file NULL) {perror(Error opening file); //自动根据error输出错误信息终端显示Error opening file: No such file or directoryfprintf(stderr, errno %d\n, errno); //输出到标准输出流终端显示error xexit(EXIT_FAILURE);}// Use the file...fclose(file);return 0; }综上理解errno是一个全局变量可以用来获取函数执行失败后的错误信息代号。 通常搭配perror或fprintf(stderr, xxx%dxxx , errno)使用 debug宏 #define debug(M, ...) fprintf(stderr, DEBUG %s:%d: M \n, __FILE__, __LINE__, ##__VA_ARGS__) 输出错误信息到终端__FILE__代表文件名__LINE__代表行号##__VA_ARGS__代表可变参数部分... 这里对于debug的使用类似于调用printf M是想要输出的错误字符串注意不带换行符。后续可变参数可以替换M 中格式化预留的内容。 实例 debug(I am %d years old., 37); 终端输出 DRBUG ex20.c:11: I am 37 years old
http://www.zqtcl.cn/news/196354/

相关文章:

  • 114网站做推广怎么样江苏建设培训网站
  • 如何让网站做网页适配网站上的产品五星怎样做优化
  • 怎么做网站排名优化免费jq网站模板
  • 源码时代培训机构官网自己建网站怎么做seo
  • 宜都网站制作济南比较大的网站制作公司
  • 怎么用电脑做网站主机假网站怎么制作
  • 网站 微信网络营销方案设计心得
  • 淘宝客 wordpress网站wordpress类似的工具
  • 农村建设房子建设网站建设渭南房产网站制作
  • php网站开发用什么win2008 iis 新建网站
  • 中山营销网站建设杭州网站建设开发有限公司
  • 被他人备案后做违法网站抖音seo推广
  • 手机网站广告代码南靖县建设局网站
  • 郑州网站建设智巢高德地图有外资背景吗
  • 网站开发常遇到客户问题wordpress怎么升级
  • 网站的空间是网站 建设 维护 公司
  • 关于网站建设的书籍网站设计的趋势
  • 临漳+网站建设深圳国贸网站建设
  • 安全的南昌网站制作上海网站建设网
  • 360网站制作潍坊医疗网站建设方案
  • 深圳网站策划公司域名解析暂时失败
  • 怎么做安居客网站wordpress 函数文件
  • 微名片网站怎么做html代码表示
  • 两学一做纪实评价系统网站如何做好百度推广
  • 网站设置手机才能播放企业网站开发需求
  • 网站建设微信运营销售做网站用啥语言
  • dw建设网站步骤活动汪活动策划网站
  • 民和县公司网站建设网站开发的特点
  • 模板企业快速建站上传网站中ftp地址写什么
  • 云南本地企业做网站太原网站制作公司哪家好