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




  

相关话题

  Python和C语言哪个更容易学,感觉学了C语言有点难,只学过C语言的大学生很迷茫? 
  Windows 上最小的「HelloWorld.exe」能有多小? 
  有一台不会坏掉的电脑,这台电脑上只有vc++6.0,给一个人一亿年的时间,能创造出现在的各种软件吗? 
  第2个孩子不是应该在第4个孩子之前完成任务吗? 
  谭浩强在程序员圈子里的口碑如何?为什么? 
  C++ 中,如果指针换了被指向的东西,那被指向的原来的东西(是被 new 出来的)所占的内存会立刻被释放吗? 
  只会c语言语法,就能强行做一个编译器出来吗? 
  C语言能用指针修改其他程序的地址的值吗? 
  为什么 C 语言有了 while 还需要 for? 
  为什么C语言整型常量十进制形式的类型与八进制、十六进制的不一样? 

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





© 2025-04-16 - tinynew.org. All Rights Reserved.
© 2025-04-16 - tinynew.org. 保留所有权利