[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
вместо
goto bailout;
можно просто кусок повторить.
Я так и делал когда I2c библиотеку писал
Хороший оптимизирующий компилятор(я работаю с HiTech )
сам объединит повторяющиеся куски и поставит goto.
Текста больше, зато наглядность лучше. Не надо для понимания метку искать. Сразу видно какие действия производятся при аварийном возврате.
Текст можно сократить
#define ReturnErr(x) sdahi(adap);/
sclhi(adap);/
return x;
и вместо
goto bailout;
писать ReturnErr(-ENODEV);
тоже видно, что аварийный возврат.
2 вариант: можно просто вернуть ошибку, а наверху выполнить ее обработку.
А вот примерчик из CHip/Bit интересно было бы посмотреть.
С уважением, Иван
E-mail: info@telesys.ru