Цитата(Allregia @ Jul 14 2014, 03:00)

В общем, я понял что за исключением каких-то специальных случаев, юнитов, структур и больших массивов - надо не морочить себе голову и использовать u32,s32,vu32,vs32.
Вы поняли неправильно. Надо включить стандартный заголовок <stdint.h> и использовать:
- uint_fast8_t для перемннных, значение которых не превысит 0xFF,
- uint_fast16_t для перемннных, значение которых не превысит 0xFFFF,
- uint_fast32_t для остальных.
Если нужны переменные со знаком, то берите int_fastX_t.
В этом случае компилятор выберет для вас оптимальный по скорости размер переменной.
Понятно, что для 32-разрядных процессоров компилятор выберет 32-разрядные переменные. Но при смене платформы это может измениться. Мало ли, захочется вам перенести какой-нибудь алгоритм на AVR. И как там себя будут чувствовать 32-битные счётчики цикла от 0 до 10?
Если бы я знал, что такое электричество...