Цитата
Менять пришлось бы только функцию чтения...
И все вызывающие ее функции. Они тоже должны вернуть наверх ошибку.
Вечером дома посидел, подумал. Наверно, так оно и следует делать в о общем случае. (По крайней мере, когда пишу драйвера, там сплошь проверки условий и возврат булева результата). Но когда пишешь супер компактный код, приходится жертвовать некоторыми принципами.
"Правильная" проверка флагов и откат по ошибке наверх увеличили программу почти на 200 байт. И глубина стека возросла.
Вариант с longjmp тоже оказался не походящим - jmp_buf отъедает 21 байт от ОЗУ (из 128). На стек уже не остается.
Сообщение отредактировал Георгий - Feb 22 2006, 09:06