ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1425113 Топик полностью
mse homjak (10.04.2024 23:23, просмотров: 90) ответил Toчкa oпopы на На всякий случай - Хабарка. Как вычистить код Cortex-M от программно обрабатываемых double при наличии аппаратной поддержки float.
Вотблять! Спасибо. "...(float)data*(float)constant". Размер кода увеличился всего на десяток-другой, байт(вместо нескольких кило), скорость, на порядок. 

"Язык C коварен тем, что по умолчанию все дробные числа трактует как double. Например, 0.0076 - это double. Если мы умножаем его на 0.1f, то результирующий тип выбирается, как более расширенный из двух, то есть double. Ещё большее коварство проявляется при работе с экспоненциальной формой: число 1e6 не является целочисленным, его тип тоже double. Используйте суффикс f/F на конце числовых констант, чтобы явно указать тип float. Например 1e6f."