До недавнего времени я считал, что большинство разработчиков/поставщиков систем решили, что простая int 32-разрядная версия даже на 64-битных машинах - это своего рода целебная бородавка. С современными типами C99 с фиксированным размером (int32_t и uint32_t и т.д.) Потребность в стандартном целочисленном типе каждого размера 8, 16, 32 и 64 в большинстве случаев исчезает, и кажется, что int также можно было бы сделать 64-битным.
Однако самое большое реальное следствие размера простой int в C происходит от того факта, что C по существу не имеет арифметики для типов меньшего размера, чем int. В частности, если int больше 32 бит, результат любой арифметики на значениях uint32_t имеет тип signed int, что довольно неудобно.
Является ли это хорошей причиной для того, чтобы int постоянно фиксировался на 32-разрядной основе в реальных реалиях? Я склоняюсь к тому, чтобы сказать "да". Мне кажется, что может существовать огромный класс использования uint32_t, который прерывается, когда int больше 32 бит. Даже применение унарного минуса или побитового оператора дополнения становится опасным, если вы не вернетесь к uint32_t.
Конечно, те же самые проблемы относятся к uint16_t и uint8_t для текущих реализаций, но все, похоже, знают и используют их как типы "меньше, чем int".