वहाँ रास्ते में कोई वास्तविक लाभ यह वर्तमान में परिभाषित है ।
मुझे संदेह है कि जब time()
फ़ंक्शन को पहली बार परिभाषित किया गया था, तो यह एक प्रकार का उपयोग करता था जिसे किसी फ़ंक्शन से वापस नहीं किया जा सका। बहुत जल्दी सी कार्यान्वयन में long int
नहीं था और वे कार्यों से संरचनाओं को वापस करने में सक्षम नहीं थे। 16-बिट इंट्स वाली प्रणाली पर, एक समय का प्रतिनिधित्व करने का एकमात्र तरीका संरचना या सरणी के रूप में होगा; 16 बिट्स सेकेंड सेकेंड एक दिन से भी कम है।
time_t now;
time(&now); /* sets now.time_high, now.time_low */
या शायद:
time()
की तो जल्दी कार्यान्वयन इस (अटकलें) की तरह कुछ के लिए इस्तेमाल किया गया हो सकता है
int now[2];
time_t(now); /* sets now[0], now[1] */
जब बाद में सी कार्यान्वयन अब पूर्णांकों और संरचनाओं वापसी करने की क्षमता जोड़ा मूल्य के अनुसार, time()
फ़ंक्शन से time_t
मान वापस करने की क्षमता को जोड़ा गया था, लेकिन मौजूदा कार्यक्षमता को तोड़ने से बचने के लिए पुरानी कार्यक्षमता को रखा गया था।
मुझे लगता है कि अगर time()
आज परिभाषित किया जा रहा था, इसे और अधिक इस प्रकार दिखाई देगा:
time_t time(void);
मैं time()
समारोह की है कि पुराने कार्यान्वयन पुष्टि करने के लिए नहीं कर पाए हैं इस तरह से काम किया है (Googling "की कोशिश समय "!), लेकिन यह भाषा के इतिहास को समझ में आता है।
यदि आप time()
फ़ंक्शन पर एक शून्य सूचक पास करते हैं, तो यह वर्तमान समय को एक चर में संग्रहीत किए बिना लौटाता है; इस प्रदर्शन की सजा में से कुछ से बचा जाता है: `टाइम_टी एक्स = (अब = समय())` + more_time:
time_t now = time(NULL);
स्रोत
2012-03-30 15:10:37
यह सराहनीय लगता है। मैं प्रदर्शन दंड की दूसरी तरफ जाने की उम्मीद कर रहा था। यदि आप एक पूर्ण पास करते हैं, तो इससे बचा जाता है, लेकिन यदि आप इसे एक सूचक के साथ बुलाते हैं और रिटर्न परिणाम को अनदेखा करते हैं, तो उसे अभी भी रिटर्न रजिस्टर में समय देना होगा। कभी-कभी मैं भूल जाता हूं कि सी लगभग दो गुना पुराना है जैसा मैं हूं। :) – wjl
* कभी-कभी मैं भूल जाता हूं कि सी लगभग दो गुना पुराना है। * - मुझे पुराना महसूस करने के लिए धन्यवाद! 8-)} –