C के प्रारंभिक संस्करणों में अहस्ताक्षरित पूर्णांक नहीं थे। (कुछ प्रोग्रामर्स ने अहस्ताक्षरित अंकगणित की आवश्यकता होने पर पॉइंटर्स का उपयोग किया।) मुझे नहीं पता कि कौन पहले आया था, time()
फ़ंक्शन या अहस्ताक्षरित प्रकार, लेकिन मुझे संदेह है कि प्रतिनिधित्व निरूपित प्रकार सार्वभौमिक रूप से उपलब्ध होने से पहले स्थापित किया गया था। और 2038 भविष्य में पर्याप्त था कि यह शायद चिंता करने लायक नहीं था। मुझे संदेह है कि कई लोगों को लगा कि यूनिक्स तब भी मौजूद रहेगा।
एक हस्ताक्षरित का एक और लाभ time_t
यह है कि इसे 64 बिट्स तक फैलाया जा रहा है (जो पहले से ही कुछ प्रणालियों पर हो रहा है) आपको 1970 से पहले के समय का प्रतिनिधित्व करने की क्षमता खोए बिना कई सौ अरब वर्षों के भविष्य का प्रतिनिधित्व करने देता है। (इसीलिए मैं एक स्विच करने का विरोध करता हूं 32-बिट अहस्ताक्षरित time_t
; हमारे पास 64 बिट्स में संक्रमण के लिए पर्याप्त समय है।)