ये मंच-आजादी के लिए हैं।
size_t
परिभाषा के अनुसार, sizeof
द्वारा लौटाया गया प्रकार है। यह लक्ष्य प्रणाली पर सबसे बड़ी वस्तु का प्रतिनिधित्व करने के लिए काफी बड़ा है।
इतने सालों पहले नहीं, किसी भी मंच के लिए 32 बिट पर्याप्त थे। आज 64 बिट्स पर्याप्त हैं। लेकिन कौन जानता है कि अब से 5, 10, या 50 साल की कितनी बिट्स की आवश्यकता होगी?
अपने कोड को ध्यान में रखते हुए लिखने के द्वारा - यानी, जब आप "ऑब्जेक्ट का आकार" का अर्थ रखते हैं तो हमेशा size_t
का उपयोग करें - आप कोड लिख सकते हैं जो वास्तव में संकलित और 5, 10, या 50 साल से चलाएगा। या कम से कम एक लड़ने का मौका है।
कहने के लिए प्रकारों का उपयोग करें कि आपका क्या मतलब है। अगर किसी कारण से आपको बिट्स की एक विशिष्ट संख्या की आवश्यकता होती है (शायद केवल बाह्य परिभाषित प्रारूप से निपटने पर), आकार-विशिष्ट प्रकार का उपयोग करें। यदि आप कुछ ऐसा चाहते हैं जो "मशीन का प्राकृतिक शब्द आकार" है - यानी, तेजी से उपयोग करें int
।
यदि आप sizeof
या strlen
जैसे प्रोग्रामेटिक से निपट रहे हैं, तो size_t
जैसे उस इंटरफ़ेस के लिए उपयुक्त डेटा प्रकार का उपयोग करें।
और कभी भी एक प्रकार को दूसरे को असाइन करने का प्रयास न करें जब तक कि परिभाषा के अनुसार मूल्य को पकड़ने के लिए पर्याप्त न हो।
'आप कोड लिख सकते हैं जो वास्तव में ऑप्टिमाइज़्म के लिए +1 से 5, 10, या 50 साल संकलित करेगा :-) – Praetorian
ठीक है, सी में नहीं, लेकिन मेरे पास कोड है जो 1 99 6 में लिखा गया था और अभी भी संकलित है और रन। पन्द्रह साल! –