C/C++ goto伤了我的心

C/C++程序员或者初学C/C++都会遇到goto的问题,是否该使用goto,一派是坚决抵制,坚决不用,goto使程序难以分析,并且用code证明任何goto都是不必要的,都可以进行合理替换;另一派坚持goto使程序更简洁,能够很好的统一处理程序的异常情况。针对哪种语言是最好的,以及语言中的特定性质,我从来没有倾向性,不会选择战队。每种语言都有自己适用的情形,每种性质都有存在的合理性。goto就像一把切菜刀,用好了,锋利无比,能够切肉切菜,做出美味;用不好,可能伤到自己,甚至伤到别人。所以想用好菜刀必须要小心,提高警惕,不能麻痹大意。

我自己写的code和项目中遗留的code,使用goto的情形都是程序遇到异常情况,需要提前退出,统一做error handling,释放内存等。但是如何小心,还是出了错。

简单描述一下code的逻辑,code是分层的,我负责的层属于中间层,中间层下面是底层,和硬件打交道,中间层和硬件的交互都是通过底层实现的,中间层和底层有一套比较标准的接口,中间层传入底层的参数是什么,底层应该返回中间层什么结果,事前都有明确的描述,当然中间层针对底层的返回结果需要做一些保护,因为底层可能返回一些错误结果,可能是合理情形。

sample code

int testSample(void) {
// Line是一个类,底层的返回结果类型就是Line,Line中有保存数据的元素data和有解析读取返回结果的各种函数。
    Line *line = NULL;
    char *respons
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值