मैं सोच रहा था कि यह size_t
क्यों उपयोग किया जाता है जहां मैं int टाइप कह सकता हूं। इसकी कहा गया है कि size_t
sizeof
ऑपरेटर का रिटर्न प्रकार है। इसका क्या मतलब है? जैसे कि अगर मैं sizeof(int)
का उपयोग करता हूं और इसे int
टाइप वैरिएबल पर वापस लौटाता हूं, तो यह भी काम करता है, इसे size_t
टाइप वैरिएबल में स्टोर करना आवश्यक नहीं है। मैं तो बस स्पष्ट रूप से एक स्पष्ट रूप से समझा जा सकता example.Thanksकोई भी बता सकता है कि उदाहरण के साथ size_t प्रकार का उपयोग क्यों किया जाता है?
उत्तर
size_t
सबसे बड़े आकार संभव प्रतिनिधित्व करने में सक्षम होने की गारंटी है के साथ size_t
का उपयोग कर की मूल अवधारणा को जानना चाहते हैं, int
नहीं है। इसका मतलब है size_t
अधिक पोर्टेबल है।
उदाहरण के लिए, int
केवल 255 तक स्टोर कर सकता है लेकिन आप 5000 बाइट्स के सरणी आवंटित कर सकते हैं? स्पष्ट रूप से यह काम नहीं करेगा, हालांकि size_t
के साथ यह होगा।
तकनीकी रूप से 'int' कम से कम 16 बिट्स होना चाहिए इसे कम से कम सीमा [-32767..32767] तक फैलाना है। (क्यों नहीं -32768? किसी के पूरक और साइन-एंड-परिमाण प्रणाली को समायोजित करने के लिए, यदि कोई पुरानी यूनिवैक मशीन पर सी का उपयोग करना चाहता है। बेशक उनमें 18- और 36-बिट पूर्णांक हैं, 9-बिट ' char'।) – torek
@torek किसी कारण से मैं इस धारणा के तहत हूं कि int केवल सी में 16 होना चाहिए, सी ++ नहीं। यद्यपि मानक की जांच नहीं की है। – Pubby
@ पब्बी: सी ++ विरासत में है कि सी 1.1 पी 2 सी ++ आईएसओ/आईईसी 98 99: 1 999 प्रोग्रामिंग भाषा
–
सबसे सरल उदाहरण बहुत दिनांकित है: एक पुराने 16-बिट int
सिस्टम पर राम के 64 कश्मीर के साथ, एक int
का मूल्य -32,768 से 32,767 करने के लिए कहीं भी हो सकता है, लेकिन बाद:
char buf[40960];
बफर buf
पर 40 किलोबाइट हैं, इसलिए sizeof buf
int
में फ़िट होने के लिए बहुत बड़ा है, और इसे unsigned int
की आवश्यकता है।
एक ही बात आज तब होगा, जब 32-बिट int
का उपयोग लेकिन, कार्यक्रम एक समय में राम से अधिक 4 जीबी का उपयोग करने की अनुमति के रूप में क्या "I32LP64" मॉडल (32 बिट int
कहा जाता है पर मामला है सकते हैं, 64 -bit long
और सूचक)। यहां size_t
टाइप unsigned long
जैसा ही होगा।
यह कार्यान्वयन परिभाषित किया गया है लेकिन 64 बिट सिस्टम पर आप पाएंगे कि size_t
अक्सर 64 बिट होता है जबकि int
अभी भी 32 बिट है (जब तक यह ILP64 or SILP64 मॉडल नहीं है)।
आप किस आर्किटेक्चर पर हैं (16-बिट, 32-बिट या 64-बिट) एक int एक अलग आकार हो सकता है।
यदि आप एक विशिष्ट आकार मैं uint16_t या uint32_t उपयोग करना चाहते हैं .... आप बाहर इस सूत्र में अधिक जानकारी के
What does the C++ standard state the size of int, long type to be?
आप एक ही की अहस्ताक्षरित पूर्णांकों में संकेत दिए गए कास्टिंग के लिए ज्यादातर size_t का उपयोग के लिए जाँच कर सकते हैं आकार, पॉइंटर्स पर गणना करने के लिए जैसे कि वे पूर्णांक थे, जो अन्यथा संकलन समय पर रोका जाएगा। इस तरह का कोड अलग-अलग सूचक आकारों के संदर्भ में संकलित और सही तरीके से निर्माण करना है, उदा। 64-बिट बनाम 32-बिट मॉडल।
- 1. क्या कोई बता सकता है कि किस संदेश दलाल के लिए उपयोग किया जाता है?
- 2. कोई भी बता सकता है कि jQuery के सीएसएस हुक का उपयोग कैसे करें/क्यों?
- 3. क्या कोई बता सकता है कि स्केल
- 4. क्या कोई बता सकता है कि फास्टटैग
- 5. क्या कोई बता सकता है कि xml क्या है: एक्सएचटीएमएल 5 में बेस एट्रिब्यूट का उपयोग किया जाता है?
- 6. क्यों ओजीआई का उपयोग किया जाता है?
- 7. मैं कैसे बता सकता हूं कि कोई उदाहरण एक्शनस्क्रिप्ट 3.0
- 8. सी # - क्या कोई मुझे बता सकता है कि मुझे प्रतिनिधियों का उपयोग क्यों करना चाहिए?
- 9. टाइपिंगफ एनम प्रकार के साथ क्यों प्रयोग किया जाता है?
- 10. सुहोसिन का उपयोग क्यों किया जाता है?
- 11. किसी भी संस्करण में किसी भी प्रकार का उपयोग क्यों नहीं किया जा सकता है?
- 12. क्या कोई मुझे बता सकता है कि वीआईएम में डॉट (।) कमांड इतना उपयोगी क्यों है?
- 13. किस प्रकार का डेटा size_t होल्डिंग है?
- 14. क्या यह स्ट्रिंग बेस 64 है? मैं कैसे बता सकता हूं कि एन्कोडिंग का उपयोग क्या किया जाता है?
- 15. कार्यों के बजाय कन्स्ट्रक्टर का उपयोग क्यों किया जाता है?
- 16. क्यों खारिज नहीं किया जाता है WithClickedButtonIndex कभी भी क्लिक किया जाता है बटनऑट इंडेक्स?
- 17. ImmutableObjectAttribute का उपयोग कैसे किया जाता है?
- 18. मैं कैसे बता सकता हूं कि एक वेब पेज संसाधन कैश किया जाता है?
- 19. क्लैंग का अधिक उपयोग क्यों नहीं किया जाता है?
- 20. स्ट्रिंगटोकनाइज़र का बहिष्कार क्यों किया जाता है?
- 21. कोई बता सकता है कि यह jQuery UI Datepicker में क्यों है?
- 22. कैसे बताएं कि glibc का उपयोग किया जाता है
- 23. आईएसओ में NSUserDefaults का उपयोग क्यों किया जाता है?
- 24. एक्सकोड, देखें कि एक विधि का उपयोग किया जाता है
- 25. टाइपिड कीवर्ड खराब डिज़ाइन का उपयोग क्यों किया जाता है?
- 26. क्यों रैंड में 1103515245 का उपयोग किया जाता है?
- 27. प्रकार का कोई संलग्न उदाहरण ... सुलभ है
- 28. क्या कोई बता सकता है कि मेरे रिश्तों के साथ क्या गलत है?
- 29. प्रकार कैमरा का कोई enclosing उदाहरण पहुँचा जा सकता है
- 30. क्या कोई मुझे बता सकता है कि यह दुर्भावनापूर्ण क्यों है ..?
आप आकार की वापसी को स्टोर करने के लिए एक int का उपयोग कर सकते हैं जिस तरह से आप कभी-कभी 2147483647 को एक int में स्टोर कर सकते हैं। ऐसा ही होता है कि कार्यान्वयन विशिष्ट आकार सही ढंग से मेल खाते हैं। – Lalaland
यह प्रश्न भी देखें: http://stackoverflow.com/questions/918787/whats-sizeofsize-t-on-32-bit-vs-the-various-64-bit-data-models – ChrisWue
क्या कोई यह पुष्टि कर सकता है कि size_t है प्रोसेसर रजिस्टरों का एक ही आकार? – arthurprs