Вопросы к Поиску с Алисой
Размер типа long в 64-битной системе составляет 4 байта для обеспечения обратной совместимости. stackoverflow.com Windows была создана на 16-разрядной платформе, где sizeof(long) тоже составлял 4 байта. stackoverflow.com Microsoft серьёзно относится к обратной совместимости и не хочет изменять этот параметр, чтобы не вызвать проблем с устаревшим кодом. stackoverflow.com
Кроме того, такой подход позволяет избежать нарушения форматов сохранения. stackoverflow.com Например, если бы тип long расширился с 32-битного значения до 64-битного, 64-битная программа не смогла бы использовать некоторые структуры данных, например, заголовок растрового файла. stackoverflow.com
При этом стоит учитывать, что фактические размеры типов данных могут отличаться в разных реализациях, так как разработчики компиляторов выбирают их самостоятельно, исходя из аппаратных возможностей компьютера. metanit.com