我正在阅读这个问题,其中有一个回答解释了为什么使用exit()
是不好的,因为:
- 你将会结束程序中有多个退出点
- 它使代码更加混乱(类似于使用goto)
- 它不能释放在运行时分配的内存
我应该澄清一下,我正在使用Qt,所以代码已经有点“混乱”,因为我正在利用信号和槽。话虽如此,对于问题#1,我看到它与#2有关,但我的代码目前试图避免使用exit()
,因为我被告知它会使我的代码看起来很混乱,但避免使用exit
却让它变得混乱。例如,当用户注册并且他们的用户名已经存在时,我不仅告诉用户注册失败(这是期望的行为),还返回false
给一个函数,然后返回false
给另一个函数,然后再返回false
给我的主函数,如果它返回false,则返回0。所以,避免使用exit()
根本无法使代码更加清晰。
对于第三个问题,使用exit(0)
不是告诉操作系统程序已经完成运行,操作系统会自动释放那些内存吗?当我按下按钮并使用exit(0)
时,我测试了一个案例,该进程从进程列表中被移除,并且内存被释放,那么这还有什么问题呢?至少在Windows上,这似乎是一个彻头彻尾的错误陈述。