gcc 4.4.3 c89
У меня есть некоторые функции, которые инициализируют некоторое оборудование и возвращают true или false. Если false, я должен uninitialize в обратном порядке.
Однако мой код выглядит очень неопрятным со всеми операторами 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 */
}