ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
444570 Топик полностью
abivan (20.09.2013 18:32, просмотров: 171) ответил fk0 на Короче итог такой. Экономия ~12кБайт сходу на одном проекте, после замены sscanf и всех printf на свои. Но нужен свой assert и исключить dump_heap (в них жёстко прописано printf_cdnopsuxX). На другом проекте только замена sscanf дала экономию в
сто лет уж своим пользуюсь еще со времен когда printf половину ПП занимал. Вот до scanf руки не дошли, задач не было. Alloc тоже свой, с тех времен когда еще встроенный не работал. Посему проблемы новых компиляторов пока обходят стороной CVTTOA: Функции обращения чисел в строки. _________________________________ str2 = cvtftoa(str, dval, type, dpts); /(char *)/ обращает double в строку str2 = cvtitoa(str, ival, base); /(char *)/ обращает int в строку str2 = cvtltoa(str, lval, base); /(char *)/ обращает long int в строку str2 = cvtultoa(str, lval, base); /(char *)/ обращает unsigned long в строку str2 = cvtutoa(str, uval, base); /(char *)/ обращает usigned или 16-ричную int в строку Аргументы: int base; основание системы счисления используемое для записи величины. Основание это число в пределах от 1 до 37. int dplcs; число десятых помещенных после точки "." при обращении величины с плавающей точкой. double dval; ¦ int ival; ¦ исходная величина которая будет обращена long lval; ¦ в сторону usigned uval; ¦ char str[]; адрес буфера для приема обращенной величины. char *str2; адрес того же буфера возвращаемый для удобства int type; формат числа. Тип может быть "F" для фиксированной формы, "E" - для экспоненты, или "G" - позволяет выбор функции короче для получения более короткого из двух видов. Пример: Обращение строки из двоичного представления в ASCII. cvtftoa(str, 3245., 'F',3); /*3245.000 */ cvtftoa(str, 3245., 'E', 4); /* 0.3245E04 */ cvtutoa(str, 4097, 16); /* 1001 */ cvtltoa(str, -123L, 10); /* -123 */ cvtultoa(str, 0xffffffff, 16); /* ffffffff */ cvtutoa(str, 0x8000, 10); /* 32768 */