Цель языка высокого уровня - обеспечить некоторую изоляцию от деталей машины.Итак, мы говорим о «целых числах», а не о каком-то конкретном количестве байтов памяти.Затем реализация отображает типы более высокого уровня на то, что кажется наиболее подходящим для целевого оборудования.
И есть разные семантики, связанные с разными 4-байтовыми типами: для целых чисел знаковый и беззнаковый важен для некоторых классовпрограммы.
Я понимаю, что это вопрос C, и можно поспорить о том, насколько высок уровень C или нет;но он, по крайней мере, предназначен для переноса между машинными архитектурами.
И, в вашем примере, вы предполагаете, что int - это 32 бита.Ничто в языке не говорит, что это должно быть правдой.Это не всегда было правдой и, конечно, не было правдой в оригинальной реализации PDP-11.И в настоящее время, например, возможно, целесообразно иметь 64-битное значение int на 64-битном компьютере.
Обратите внимание, что в языках нет таких типов, как "целое число" и т. Д. BLISS, aязык на том же концептуальном уровне, что и C, имеет машинное слово как единственный встроенный тип данных.