-
- Вы же догадываетесь по приведённым опциям что я не с нуля спросил?
Меня больше дерево вызовов интересует, какую базовую
функцию(несколько?) надо переопределить и как компилятору сказать,
что "вот это использовать". printf() -> fprintf() ->
fputc() ? Или же printf() -> putchar() -> fputc() ?
Третий, ни один из этих? - Dingo(13.04.2023 15:48)
- Открой STDIO.H - погляди что там рядышком printf. Это и перебей. POV(1 знак., 13.04.2023 16:02, картинка)
- Щас насоветуешь. Просто скажи "не знаю", а лучше промолчи :-) - SciFi(13.04.2023 16:05)
- Не веришь ты в людей ( POV(1 знак., 13.04.2023 16:27, картинка)
- Щас насоветуешь. Просто скажи "не знаю", а лучше промолчи :-) - SciFi(13.04.2023 16:05)
- гнусный компилятор - это от слова "гнусный". Эта скотиняка в
зависимости от аргументов для printf() делает разные "деревья
вызовов". Но по идее любое дерево упирается в один "корень" - вот
его и надо "замещать". в моём случае (частный) это outbyte(ch) - Zoro(13.04.2023 15:55)
- Печать символьной строки без форматирования через % вызывает puts_r [opennet: int _puts_r(void *reent, const char *s); ] которая дёргает swbuf_r() [ int _EXFUN(__swbuf_r, (struct _reent *, int, FILE *)); ] А вот кто и как потом с этим буфером работает - загадка... Сам __swbuf_r инициализирует внутри, __swsetup_r . _write_r ещё есть в listing lss с вызовом _write с таким дизассемблером Dingo(624 знак., 13.04.2023 16:48)
- Там newlib (пусть даже nano), и printf тянет за собой ещё и malloc/free. Не такой уж и "нано", как выясняется. - SciFi(13.04.2023 16:01)
- Открой STDIO.H - погляди что там рядышком printf. Это и перебей. POV(1 знак., 13.04.2023 16:02, картинка)
- Вы же догадываетесь по приведённым опциям что я не с нуля спросил?
Меня больше дерево вызовов интересует, какую базовую
функцию(несколько?) надо переопределить и как компилятору сказать,
что "вот это использовать". printf() -> fprintf() ->
fputc() ? Или же printf() -> putchar() -> fputc() ?
Третий, ни один из этих? - Dingo(13.04.2023 15:48)