Почему значение года в функции локального времени Perl (и структуре tm в языке C) соответствует 1900?

Как все программисты Perl (надеюсь) знают, значение года из вызова функции Perl localtime относительно 1900. Интересно, почему это так, я взглянул на perldoc для localtime и обнаружил этот интересный самородок:

Все элементы списка являются числовыми и происходят прямо из C `struct tm '.

Затем, просмотрев ссылку C ++ для tm struct , я обнаружил, что переменная-член tm_year объявлена ​​как int .

Вопрос: Почему же тогда значение года относится к 1900 году, а не просто к полному четырехзначному году? Есть какая-то историческая причина? Мне кажется, что даже с ранними ограничениями памяти в вычислениях, целое число (очевидно) более чем достаточно для хранения полного года. Должна была быть веская причина; Мне любопытно, что это может быть.

15
задан Jonah Bishop 13 December 2014 в 01:30
поделиться