Я работаю над встроенной программой, и в некоторых случаях, если условие не подразумевается, я хотел бы вернуться из функции как можно быстрее. если у меня есть следующий код, и я занимаюсь встроенным программированием:
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
. Это необязательно. - person Joe Frambach   schedule 18.06.2013bool foo (void) { return a >= b; }
, оставаясь совершенно понятной и совместимой с MISRA. - person Lundin   schedule 19.06.2013lots of calculations in this block
не происходит. - person Bill   schedule 19.06.2013a >= b
, а затем возвращаться, вы простоreturn
. - person Bill   schedule 19.06.2013