-
- пример "работы" в студию, все как всегда зависит от нюансов а не от того 16битные или 32бтные операнды, если писать грамотно и понимать компилятор - то он все раскидает квазиоптимальным способом. - klen(24.11.2019 13:17)
- Я в своем коде уже давно использую такой расклад: il-2(328 знак., 24.11.2019 08:43)
- Меня fastXX_t категорически не устраивает. Я не пишу код для абстрактной архитектуры, а у своего конкретного МК желаю точно знать, что для него fast, а что неfast, и в каких случаях. Не желаю позволять линкеру самому решать, каким быть размерам у Ксения(151 знак., 24.11.2019 12:12)
- Банальная логика подсказывает, что пока размер переменной меньше или равен разрядности процессора, быстродействие одинаково. - VLLV(24.11.2019 13:17)
- Солидарна с мнением fk0 из предыдущего сообщения, т.к. сама с этим ранее сталкивалась на x64, когда при работе с более короткими числами порой приходится добавлять команду расширения знака. Из-за этого прямые операции с памятью бывают затруднены - Ксения(157 знак., 24.11.2019 14:14)
- Не использую знаковую арифметику :) - VLLV(24.11.2019 17:33)
- Это правильно :) - Ксения(24.11.2019 17:34)
- Не использую знаковую арифметику :) - VLLV(24.11.2019 17:33)
- Банальная логика подсказывает, что работа с байтами на 32-битной машине требует массу лишних инструкций (знаковое или беззнаковое расширение байта до слова, маскировка слова до байта, если процессор не умеет загружать байты, или специальные fk0(36 знак., 24.11.2019 13:22)
- Если речь об ARM, то загружать байты и полуслова он может. - VLLV(24.11.2019 17:56)
- Солидарна с мнением fk0 из предыдущего сообщения, т.к. сама с этим ранее сталкивалась на x64, когда при работе с более короткими числами порой приходится добавлять команду расширения знака. Из-за этого прямые операции с памятью бывают затруднены - Ксения(157 знак., 24.11.2019 14:14)
- Ну что тут скажешь... Больше пишите сами, меньше читайте что пишут другие... - il-2(24.11.2019 13:10)
- Банальная логика подсказывает, что пока размер переменной меньше или равен разрядности процессора, быстродействие одинаково. - VLLV(24.11.2019 13:17)
- Глобальных переменных мало, там заморочки не нужны. Поэтому int. Массивы - отдельная история, конечно. - SciFi(24.11.2019 08:47)
- Меня fastXX_t категорически не устраивает. Я не пишу код для абстрактной архитектуры, а у своего конкретного МК желаю точно знать, что для него fast, а что неfast, и в каких случаях. Не желаю позволять линкеру самому решать, каким быть размерам у Ксения(151 знак., 24.11.2019 12:12)
- а у вас все переменные uint32 ??? - Aleksey_75(23.11.2019 21:53)
- Мне просто не нужны такие длинные, но есть опасение, что 32-разрядному контроллеру будет напряжно, если я стану считать арифметику на 16-разрядных числах. Растягивает ли он операнды до 32-х разрядов перед тем, как производить с ними операции, или Ксения(91 знак., 23.11.2019 22:14)
- Я приводил результаты своих замеров =>, но никто не мешает вам сделать свои. - йцукен(24.11.2019 11:17, ссылка)
- IMHO, контроллеру плевать - что загружено, то и выполнит. Компилятор/линкер могут родить более или менее оптимальный код. Считается, что нативный размер операндов завсегда не нагружает. Для оптимального обхода integer promotion и прочая существуют Vit(128 знак., 23.11.2019 23:32, ссылка)
- Если важна скорость, то указываете соответствующий тип из stdint.h, не одними uint16_t и uint32_t все исчерпывается. И выбор разрядности делается компилятором. "The fastest type holding at least a certain number of bits." - VLLV(23.11.2019 22:27 - 22:30)
- Мне просто не нужны такие длинные, но есть опасение, что 32-разрядному контроллеру будет напряжно, если я стану считать арифметику на 16-разрядных числах. Растягивает ли он операнды до 32-х разрядов перед тем, как производить с ними операции, или Ксения(91 знак., 23.11.2019 22:14)
- Давно надо было бы создать тему "Все что вы давно хотели узнать про STM32, но стеснялись спросить" для дурацких вопросов :). А то их у меня уже много накопилось. - Ксения(23.11.2019 21:41)