Вопрос о том, сколько памяти unsigned char
занимает против int
, имеет смысл только в том случае, если он находится в массиве (или, возможно, в структуре, если вы тщательно упорядочиваете элементы, чтобы заботиться о выравнивании) , Как одиночная переменная, очень маловероятно, что вы вообще сохраните какую-либо память, и компилятор, скорее всего, сгенерирует больший код для усечения старших битов регистров.
Как правило, никогда не используйте типы меньше чем int
, за исключением массивов, если у вас нет действительно веской причины , кроме попыток сэкономить место .