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




  

相关话题

  Intel 为什么会成为 Linux 内核最大的贡献者? 
  当初Linux的作者想写一个操作系统,结果全世界外国人帮他写完;如今我也想写一个,为啥国内没人帮我? 
  怎样用c语言画一个"三维的球体"? 
  既然谭浩强的c语言教材那么烂,那么应该选择什么书作为c语言教材? 
  为什么有很多的程序员觉得Linux比Windows更加方便,更加有效率? 
  有人将linux作为主力机系统的么,说说为什么? 
  C语言中指针与数组都可以用a[3]表示,那它们是不是相同? 
  各位VIM大神,如何学习VIM,有很多命令感觉都没有什么意思的,如何记忆,熟能生巧耳? 
  为什么本人笔记本使用 Linux 和 Windows 编译速度完全不一样?(尤其是arduino)? 
  如何评价UOS统一操作系统? 

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





© 2025-06-13 - tinynew.org. All Rights Reserved.
© 2025-06-13 - tinynew.org. 保留所有权利