What is goto怎么使用li anatolop

 *本文版权归于凌阳教育和本作者所有如转载请注明

 *特此说明并保留对其追究法律责任的权利*

    这个bug很简单,就是在代码中多写了一条goto怎么使用 fail语句,我们且不讨论这个bug如何(有興趣的同学可以查阅文章末尾的链接),我们来讨论另一个问题.
    稍微有一些linux驱动编程经验的同学都知道,一般都会使用goto怎么使用语句作错误处理,仩大一的时候教C语言的老师就和我们说过,尽量少使用goto怎么使用语句,这样会增加程序的不稳定性,使得程序运行难以捉摸,那么为什么这么喜欢使用goto怎么使用语句作为错误处理呢.

    我们来举个简单例子,我们来看两份代码:一份不带goto怎么使用的错误处理的;一份带goto怎么使用的错误处理的.一對比大家就清楚明了.

 
看到了吗.因为每一步的错误处理需要把之前申请或注册成功的资源全部都释放掉,比如class_create失败需要注销irq和驱动(因为它们已經成功了,到这一步失败了,那么之前的成功就没有意义了,所以因为一切要恢复到最初的样子),所以这会产生大量重复的代码,free_irq这个函数写了三次,unregister_chrdev寫了二次,那咋办呢?
 


 
 
有了goto怎么使用语句了,重复的代码都可以省去了,错误处理的代码只写一次就可以了.每次错误处理只需把上一步的成功的资源给注销就可以了而不是像之前一样需要把之前所有的都注销,这才是真正优雅的代码呀!
但同时也不要忘了,在这里使用goto怎么使用,跳转范围都昰init函数之内,在把控范围之内,所以可以推荐使用.其它地方想使用的话,还是去回想C语言老师的话吧!

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

我要回帖

更多关于 goto怎么使用 的文章

 

随机推荐