Вместо того, чтобы рассматривать это как int
как "оставленное позади", я бы сказал, что вы должны смотреть на это с точки зрения неспособности оставить позади любой тип размера, который может потребоваться.Я полагаю, что компиляторы могли бы определять int32_t
в терминах некоторого внутреннего типа расширения __int32_t
, но поскольку C99 все еще не получил широкой поддержки, приложениям было бы очень трудно обходиться без пропущенных определений int32_t
при их сборке.системы не могли найти 32-битный тип среди стандартных типов.И наличие 32-битного типа является необходимым, независимо от того, какой у вас размер собственного слова (например, это единственный правильный тип для значений кодовой точки Unicode).
По той же причинебыло бы невозможно сделать short
32-битные и int
64-битные: 16-битный тип важен для многих вещей, обработка звука - первое, что приходит на ум.(Не говоря уже о безобразной одержимости UTF-16 в Windows / Java ..)
На самом деле, я не думаю, что переходы с 16 на 32 бита и с 32 на 64 бита вообще сопоставимы,Оставляя позади 16-битные, мы оставляем позади систему, в которой большинство чисел, встречающихся в обычной повседневной жизни, не вписывается в базовый тип, и где хаки, такие как «дальние» указатели, должны были использоваться для работы с нетривиальными наборами данных.С другой стороны, большинство приложений имеют минимальную потребность в 64-битных типах.Крупные денежные показатели, размеры / смещения файлов мультимедиа, позиции дисков, высокопроизводительные базы данных, доступ к большим файлам с отображением в памяти и т. Д. - вот некоторые специальные приложения, которые приходят на ум, но нет оснований полагать, что текстовому процессору когда-нибудь понадобитсямиллиарды символов или что веб-странице понадобятся миллиарды HTML-элементов.Есть просто фундаментальные различия в отношении числовых величин к реальностям физического мира, человеческого разума и т. Д.