gcc 4.4.3 c89
У меня есть некоторые функции, которые инициализируют некоторое оборудование и возвращают либо true, либо false.Если false, то я должен инициализировать в обратном порядке.
Однако мой код выглядит очень неопрятным со всеми операторами if.
Например, каждая функция может возвращать либо true, либо false.Это образец.Как видите, код выглядит очень неопрятно.Я просто ищу какой-либо совет о том, как я могу очистить его, чтобы сделать его более управляемым и, если возможно, масштабируемым?
Большое спасибо за любой совет,
if(init_A() == TRUE) {
if(init_B() == TRUE) {
if(init_C() == TRUE) {
if(init_D() == TRUE) {
if(init_E() == TRUE) {
/* ALL STARTED OK */
}
else {
uninit_A();
uninit_B();
uninit_C();
uninit_D();
}
}
else {
uninit_A();
uninit_B();
uninit_C();
}
}
else {
uninit_A();
uninit_B();
}
}
else {
/* Failed to initialize B */
uninit_B();
}
}
else {
/* Failed to start */
}