ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
701076 Топик полностью
Ксения (23.09.2016 17:48 - 18:54, просмотров: 121) ответил Гудвин на Вопрос к ЦЭ-гуру: Вот эта конструкция (вывод данных из некой структуры в CSV строку) отожрала 3.5 кб программной памяти в WinAvr. Как бы соптимизировать - поубавить аппетиты?
Делюсь: :) char *ltoa( long i32, char* result, char base) { char *ptr = result, *ptr1 = result, tmp_char; long tmp_i32; do { tmp_i32 = i32; i32 /= base; *ptr++ = "FEDCBA9876543210123456789ABCDEF"[15 + (int)(tmp_i32 - i32 * base)]; } while( i32); if( tmp_i32 < 0) *ptr++ = '-'; *ptr-- = 0; while( ptr1 < ptr) { tmp_char = *ptr; *ptr-- = *ptr1; *ptr1++ = tmp_char; } return result; } Работает с base <= 16.