Представьте, что вам надо запрограммировать девайс на языке С. Девайс проприетарный чуть более, чем полностью. Какая там ОС - неизвестно. Есть только куций API, с кастомными функциями для выделения памяти в куче и проч.
Вам надо в конечном счёте читать и разбирать блобы с входными параметрами писать выходной блоб. Причем, целые числа могут быть как little endian, так и big endian.
И если там ошибка произойдет в коде, вся система станет раком, и придется вам в 4 часа утра включать ноут и удаленно перезагружать железку, получая от начальства нагоняй, что клиент N тысяч талеров впустую потерял из-за запоротых прошивок.
Вы:
-
возьмёте опенсорсный sscanf, sprintf, ведь деды давно все эти проблемы решили; будете вручную трахаться с signed/unsigned и эндианнесс;
-
возьмёте, и напишете свой кастомный sscanf, sprintf, с блекджеком и спецификаторами для эндианнес, и под конкретную задачу. Ведь вы же супер-кодер, один раз пару сложных процедур отладить - зато потом, как по автобану!
-
sscanf, sprintf - для слабаков. Настоящий ковбой каждый раз пишет в буфер без вспомогательных процедур;
-
позвоните маме, и скажете, что со следующей недели придется вам обедать у неё, а не на работе. Чтобы начинала варить борщи…















