do{ ...}while(0)应用技巧
辅助定义复杂的宏
example: #define A(args) do { a(args); b() } while(0);
如果定义#define A(args) a(args);b();
if(i > 0) A(i)
if(i > 0 )
do { a(2);b();} while(0)
或者
while(1)
a(args);b(); 这不是我们想要的,因为第二个b();不会被执行。
代替goto语句,代码流程比较好。int foo(){ somestruct* ptr = malloc(...); do{dosomething...;if(error){break;} dosomething...;if(error){break; //goto free(ptr);}dosomething...;}while(0);free(ptr);return 0; }
避免空宏引起的waring
#define B do{ } while(0);
转载于:https://blog.51cto.com/cuithzw/1441670
do{ ...}while(0)应用技巧相关推荐
- .NET Core 2.0迁移技巧之MemoryCache问题修复
对于传统的.NET Framework项目而言,System.Runtime.Caching命名空间是常用的工具了,其中MemoryCache类则常被用于实现内存缓存. .NET Core 2.0暂时 ...
- IDA Pro7.0 使用技巧 总结
From:IDA Pro7.0 使用 技巧 总结:https://www.52pojie.cn/thread-886103-1-1.html 俗话说,工欲善其事,必先利其器,在二进制安全的学习中,使用 ...
- ASP.Net2.0小技巧 保持滚动条的位置 焦点移动到某个控件 $符号轻松的使用FindControl...
您可能不知道的ASP.Net2.0小技巧 <!-- 页码和简介 --> 1. 在提交页面之后,保持滚动条的位置 可以在page指令上加上MaintainScrollPositionOnP ...
- 43个热门Flex和ActionScript 3.0 APIs,技巧和工具
Sean Moore Bio 说道:秋天又一次来临了,是时候回顾一下2008年最热门的Flex和ActionScript 3.0 APIs,技巧和工具了,下面是我的总结,收集的比较全,Flex开发必备 ...
- asp.net 2.0常见问题技巧1
asp.net 2.0常见问题技巧1 常见的一个应用场景,就是gridview中,当库存量少于某个数时,背景颜色先变色 还有就是对某一列统计其总和,显示在页脚里,下面分别阐述之 首先是当库存小于某个 ...
- iis7设置html支持asp,IIS7.0 设置技巧 (如何支持asp?)
IIS7.0 设置技巧 (如何支持asp?) 发布时间:2008-12-09 12:33:49 作者:佚名 我要评论 详解Vista系统自带的iis7.0有很多让人耳目一新的内容,这篇文章介绍 ...
- IDA Pro7.0使用技巧总结使用
文章目录 声明 一些二进制工具 C++filt: PE tools: string: strip: IDA目录结构 常用快捷键 常用设置 拍摄快照 菜单栏常用设置 自动添加反汇编注释 常用操作 创建数 ...
- ASP.NET2.0小技巧--内部控件权限的实现
谈<内业办公自动化>(可以到http://www.aspx-net.com/测试)的实现技巧之一: 在使用ASP.NET2.0的身份验证和授权时,有时候我们需要提供比页面更高一级的 ...
- IDA Pro7.0使用技巧总结
转自:https://xz.aliyun.com/t/4205 俗话说,工欲善其事,必先利其器,在二进制安全的学习中,使用工具尤为重要,而IDA又是玩二进制的神器,以前在使用IDA的时候,只是用几个比 ...
- 帆软FineReport8.0使用技巧总结及常见问题解决
帆软FineReport使用技巧总结 如下提个自己画的cpt模板,下面的功能都用到了 http://download.csdn.net/download/qq_36743482/10001977 1. ...
最新文章
- A component required a bean named 'XXXService' ...
- Python入门教程:很多人推荐学 Python 入 IT ,如果学完 Python 找不到工作怎么办...
- docker 中用docker 启动应用访问docker中的mysql
- 收文处理和发文处理的环节_集气罩的设计是气体净化、废气处理系统设计的重要环节...
- 使用raphael.js绘制中国地图
- 【Linux 内核 内存管理】内存映射原理 ② ( 内存映射概念 | 文件映射 | 匿名映射 | 内存映射原理 | 分配虚拟内存页 | 产生缺页异常 | 分配物理内存页 | 共享内存 | 进程内存 )
- 窄带Vs宽带 MIMO
- win10文件资源管理器打开时很慢
- grafana-reporter
- 程序员的办公好选择:工作效率翻倍,游戏也能超神
- 善用GOOGLE–从入门到精通
- 李欣桐 计算机竞赛,【赛出精彩】我校举行数学计算能力竞赛活动
- php怎么使用sendcloud,PHP开发之SendCloud发送邮件知几何
- file_operations结构体介绍
- vertica MySQL_vertica 数据库常用命令
- socket编程之read()/write()
- U盘启动安装Windows7 系统
- esp32对接阿里云生活物联网平台 天猫精灵控制 云智能APP远程控制 ali-sdk开发
- 在unreal中的基于波叠加的波浪水面材质原理和制作
- 一文吃透MySQL面试八股文
热门文章
- 无穷级数求和7个公式_双色球2019129期渗透围红蓝(6+1实战,附:7个双色球胆码公式)...
- 三菱gs触摸屏进入设定菜单_三菱触摸屏常用功能设置 以及界面调整
- 批量关闭公众号推送_微信推出“一键拒收”长期未读公众号推送功能
- 机器人瓦力船长机器人_警察“瓦力”来啦!机器人巡逻南京路 这样的它你喜欢吗?...
- 网络设置计算机,怎么重置电脑网络设置
- java有模糊查询吗,到底Java里的模糊查询语句该怎么写
- node.js 验证路径有效性_怎样识别光伏谐波路径?试试这个算法
- VUE保存页面的数据,VUE页面显示就执行某个函数,VUE页面隐藏就执行某个函数
- 在javascript中判断类型
- 二十分钟教你如何将区块链应用与函数计算相结合