C++小知识——浅析do{...}while(0)

本文介绍了C++中do...while(0)结构的两个实用作用:避免使用goto语句,以及帮助定义多语句宏。通过示例代码展示了如何在需要退出函数或组织宏展开时,利用do...while(0)提高代码的可读性和维护性。
摘要由CSDN通过智能技术生成

我第一眼看到这个东西,觉得不就是让括号内的语句执行一次吗。有啥用咧?

作用解析

1. 避免goto语句

有时候,一个函数要在一开始的时候分配一些资源,假如中间发生了错误需要先释放内存,然后退出函数
于是我们有了第一个版本的测试代码

#include <iostream>

bool f1(int t) {
   
	return t > 0;
}

bool f2(int t) {
   
	return t == 0;
}

bool foo() {
   

	int *p = (int *)malloc(5 * sizeof(int));
	bool Tag;

	Tag = f1(3);
	if (!Tag) {
   
		free(p);
		p = NULL;
		return false;
	}

	Tag = f2(3);
	if (!Tag) {
   
		free(p);
		p = NULL;
		return false;
	}

	std::cout << "f1和f2执行成功,开始释放p指向的内存空间...\n";
	free(p);
	p = NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值