【发布时间】:2013-06-18 19:29:58
【问题描述】:
我正在研究嵌入式程序,在某些情况下,如果某个条件并不意味着,我想尽快从函数中返回。如果我有以下代码并且我正在做嵌入式编程:
foo() {
if (a < b) {
return 0; // bail, since condition is met
} else {
// lots of calculations in this block
}
return 1;
}
我的问题是,有多个返回语句是不是很糟糕?这是不好的做法吗?有没有更好的方法? MISRA 对此有什么说法吗?
注意:这个问题是嵌入式系统特有的,与 MISRA 有关,而不仅仅是 C/C++
谢谢...
【问题讨论】:
-
不,这绝对不是坏习惯。
-
我还想删除
else。没必要。 -
感觉这样在programmers.SE上会更好。
-
@Lundin:但是
lots of calculations in this block不会发生。 -
@Lundin:您提出了一种改变函数语义的转换。如果
a >= b做很多事情,然后返回,你只需return。