в stdint есть fast типы, которые говорят, дай мне к примеру тип, в который влезет 16 бит и он будет максимально быстро работать

по поводу 64/32, есть eabi где указатели 32 бит а данные 64 бит, но вообще компилятору ничего не мешает в 64 бит коде использовать 32bit инструкции для чтения констант, работы с памятью итд и он достаточно часто использует, но сами инструкции обработки использовать 64бит, они меньше по размеру, так как меньше забивается кеш и в итоге больше быстродействие, но это x86, как обстоят дела с ARM MIPS я хз, еще важно выравнивание по кеш линиям, MSVC очень часто вставляет NOP между инструкциями что бы инструкция не занимала 2 кеш строки