Согласно многочисленным ответам здесь, long
и int
имеют размер 32 бита на распространенных платформах в C и C++ (Windows & Linux, 32 и 64 бит.) (Я знаю, что стандарта нет, но на практике это наблюдаемые размеры.)
Итак, мой вопрос: как это произошло? Почему у нас есть два типа одного размера? Раньше я всегда предполагал, что long
большую часть времени будет 64-битным, а int
32-битным. Я не говорю, что это «должно» быть так или иначе, мне просто любопытно, как мы сюда попали.