百科问答小站 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是一样的,只是没办法跳出两层循环,但是一般初始化代码里不会再有循环,如果有写成函数就好了。




  

相关话题

  java的引用明明和指针没什么本质区别,java为什么还宣称没有指针并把这个当作语言的优点? 
  为什么运维(SA)普遍反对使用 CentOS 7 ? 
  熟悉 Ubuntu 的新手怎么玩转 Arch? 
  我想用Qt做一个第一视角的赛车游戏,请问我应该看哪些相关书籍? 
  为什么 Windows 是用 C 语言编写的,却默认对文件大小写不敏感? 
  为什么大学C语言课不用linux的gcc编译器上,而是用vs呢? 
  请问,此题使用switch语句编写是否会比if更高效?若想用switch又该如何编写呢? 
  如何用一段简单的代码讲述一个悲伤的故事? 
  有没有什么办法可以让双系统同时运行? 
  为什么 Linux 可以同时兼容 x86 和 ARM ,一个操作系统不是只能对应特定的硬件系统吗? 

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





© 2025-05-30 - tinynew.org. All Rights Reserved.
© 2025-05-30 - tinynew.org. 保留所有权利