百科问答小站 logo
百科问答小站 font logo



C 语言如何不用 goto、多处 return 进行错误处理? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

do {

break;

} while(0);

Goto不够优雅,对生成代码优化也不友好,实际上多年来关于要不要Goto一直有争论。

而多return的问题在于不好做资源释放,前一个初始化分配的资源如果后面有错是要释放的,这样就导致每次出错return时都要小心保证前面的资源会被释放,这样很容易写出错误代码。

do break while就是一种折衷方案,在while后面根据初始化完整情况统一做资源释放处理。本质上和Goto是一样的,只是没办法跳出两层循环,但是一般初始化代码里不会再有循环,如果有写成函数就好了。




  

相关话题

  各个 Linux 发行版的风格和哲学分别是怎样的? 
  自己开发的Windows7 64位驱动程序需要签名,怎么解决? 
  操作系统里面经常说的一个功能用「软件实现」还是用「硬件实现」,其本质区别是什么? 
  初中文凭可以学习编程吗?如果可以,是去靠谱的培训机构还是自学?学习方向都有哪些?就业环境如何? 
  Linux交换空间可以和其他目录放在不同的硬盘中吗? 
  视频RAM与IO内存映射的问题,大家可以指导一下吗? 
  C的结构体成员变量的命名有必要加前缀吗? 
  c语言0xFFFF换成十进制不应该是65535吗? 
  Linux C++ 服务器端这条线怎么走?一年半能做出什么? 
  安卓1.0明显是基于linux内核开发的,安卓1.0是不是linux套壳? 

前一个讨论
给你10亿,让你背叛最好的朋友,面对这个博弈难题,大多数人会如何选择?
下一个讨论
俄罗斯有什么令人敬佩或者令人恐怖畏惧的细节吗?





© 2025-03-25 - tinynew.org. All Rights Reserved.
© 2025-03-25 - tinynew.org. 保留所有权利