शायद प्रदर्शन? मुझे लगता है कि गैर-निश्चित पूर्णांक का उपयोग करने से प्रोग्राम अधिक जटिल हो जाते हैं और किसी अन्य आर्किटेक्चर को पोर्ट करते समय असफल होने लगते हैं।क्या निश्चित आकार वाले (int64_t, int32_t) के बजाय गैर-निश्चित पूर्णांक (int, long) का उपयोग करने का कोई फायदा है?
उत्तर
std::intN_t
only if the implementation can directly support them प्रदान किए जाते हैं। तो पोर्टिंग कोड जो उनका उपयोग करता है असफल हो सकता है।
मैं सामान्य उपयोग के लिए std::intfastN_t
पसंद करूंगा क्योंकि उनके पास कम प्रतिबंध हैं और int
के रूप में तेज़ या तेज़ होना चाहिए।
साथ ही, अधिकांश सी ++ कोड हर जगह int
का उपयोग करता है ताकि आप जब एक int
को स्वीकार करने के लिए एक समारोह में एक std::int32_t
गुजर पदोन्नति weirdness में आ सकते हैं, खासकर अगर sizeof(int)
केवल 16 बिट्स है।
कई एपीआई गैर-निर्धारित प्रकार के मान स्वीकार या वापस करते हैं। उदाहरण के लिए, फ़ाइल डिस्क्रिप्टर int
प्रकार हैं, फ़ाइल ऑफसेट या आकार off_t
और strtol()
प्रकार long
लौटाते हैं। इस तरह के मूल्यों को निश्चित रूप से या निश्चित आकार के प्रकारों में परिवर्तित करने से कुछ मशीनों पर अतिप्रवाह होने की संभावना है।
गारंटी-चौड़ाई प्रकार (intN_t
) उपयुक्त 'मानक' पूर्णांक प्रकारों के लिए केवल टाइपपीफ हैं। यदि किसी प्लेटफ़ॉर्म में उचित प्रकार नहीं है (उदाहरण के लिए, यह 36-बिट पूर्णांक का उपयोग करता है), तो यह गारंटीकृत-चौड़ाई टाइपिफ़ी प्रदान नहीं कर सकता है और नहीं। इसका मतलब है कि प्रदर्शन शायद ही कोई तर्क हो सकता है।
अधिकतम पोर्टेबिलिटी (इस संबंध में) के लिए सामान्य दिशानिर्देश डिफ़ॉल्ट रूप से 'मानक' पूर्णांक प्रकारों का उपयोग करना है और गारंटीकृत-चौड़ाई प्रकार केवल तभी होता है जब आपका एल्गोरिदम बिट्स की सटीक संख्या मांगता हो। 'मानक' पूर्णांक प्रकारों को प्रासंगिक मानकों द्वारा गारंटी के रूप में केवल चौड़ा माना जाना चाहिए (यदि आप केवल सी ++ मानक देखते हैं, तो यह होगा: 8-बिट्स char
, 16-बिट int
, 32-बिट long
और , यदि आपका कंपाइलर इसका समर्थन करता है, 64-बिट long long
)।
यदि आपके पास डेटा है जहां आपके प्रकार का आकार इसकी कार्यक्षमता के लिए महत्वपूर्ण है, तो आपको परिभाषित आकारों के प्रकारों का उपयोग करना चाहिए। हालांकि, उदाहरण के लिए कोड का एक टुकड़ा जो [आप जो उचित रूप से उम्मीद कर सकते हैं] int श्रेणी (उदाहरण 1 के लिए कहें ... 1000 लूप काउंटर), int_32t का उपयोग करने का कोई कारण नहीं है क्योंकि आप इसे अपना चर परिभाषित करना चाहते हैं । यह 16, 32, 64, 36, 18 या 49 बिट पूर्णांक के साथ ठीक काम करेगा, वही। तो कंपाइलर को सबसे अच्छा आकार चुनने दें।
ऐसी संभावना है कि संकलक निश्चित आकार पूर्णांक के लिए खराब कोड उत्पन्न करता है जो आर्किटेक्चर के लिए "सर्वश्रेष्ठ विकल्प" नहीं है।
जाहिर है, नेटवर्क या फ़ाइल में प्रस्तुत किए गए किसी भी डेटा को निश्चित आकार होना चाहिए। इसी तरह, यदि आपके पास इंटरफ़ेस हैं जो इंटरफ़ेस सीमा में बाइनरी संगतता की आवश्यकता है, तो परिभाषित आकार प्रकारों का उपयोग करना एक समस्या बनने के आकार से बचने के लिए बहुत उपयोगी है।
- 1. क्या ऑब्जेक्ट इनिशिलाइज़र का उपयोग करने का कोई फायदा है?
- 2. क्या '* 2' के बजाय '<< 1' का उपयोग करने का कोई फायदा है?
- 3. क्या पाइथन कक्षा का उपयोग करने में कोई फायदा है?
- 4. "लिंक के रूप में जोड़ें" का उपयोग करने के बजाय पोर्टेबल क्लास लाइब्रेरी का उपयोग करने का क्या फायदा है?
- 5. पायथन वर्चुअलबॉक्स एपीआई का उपयोग करने का क्या फायदा है?
- 6. इंटरलाक्ड क्लास का उपयोग करने के विपरीत अस्थिर कीवर्ड का उपयोग करने का कोई फायदा है?
- 7. सादा स्ट्रिंग के बजाय ऑब्जेक्टआईडी का उपयोग करने का क्या फायदा है?
- 8. सरणी का उपयोग करने से arrayWithCapacity का उपयोग करने का क्या फायदा है?
- 9. क्या ऑब्जेक्ट पर संपत्ति घोषित करने के बजाए प्रोटोटाइप का उपयोग करने का कोई फायदा है?
- 10. क्या सिंगल-कैरेक्टर वैल्यू के लिए स्ट्रिंग के बजाय char का उपयोग करने का कोई फायदा है?
- 11. टेक्स्टबॉक्स पर RichTextBox का उपयोग करने का क्या फायदा है?
- 12. क्या एसक्लसेवर लुकअप टेबल के लिए int की बजाय tinyint का उपयोग करने में समस्या है?
- 13. केवल कुछ निश्चित बाइट्स की प्रतिलिपि बनाने के लिए Stream.CopyTo का उपयोग करने का कोई तरीका?
- 14. क्या सीएसएस में बहुत विशिष्ट चयनकर्ताओं का उपयोग करने का कोई फायदा है?
- 15. क्या PHP में पहले शून्य का उपयोग करने का कोई फायदा है?
- 16. क्या एमवीसी में एचटीएमएलहेल्पर का उपयोग करने का कोई फायदा है?
- 17. क्या रिटर्न स्टेटमेंट का उपयोग करने का कोई फायदा है जो कुछ भी नहीं देता है?
- 18. आकार (int [1]) का क्या अर्थ है?
- 19. क्या एक निश्चित आकार div फिट करने के लिए पाठ का आकार बदलना संभव है?
- 20. निश्चित आकार के प्रकार के साथ scanf/printf (और परिवार) का उपयोग करने का सही तरीका?
- 21. क्या गिट svn क्लोन में --no-metadata का उपयोग करने का कोई फायदा है?
- 22. क्या एएसपी.नेट में सिक्योरस्ट्रिंग का उपयोग करने का कोई फायदा है?
- 23. क्या पर्ल या पायथन पर बैश का उपयोग करने का कोई फायदा है?
- 24. क्या पीजीपी का उपयोग करके दो बार एन्क्रिप्ट करने का कोई फायदा है?
- 25. क्या एंड एंड ओ एंड एंड और || का उपयोग करने का कोई फायदा है PHP में?
- 26. क्या मानक सी ++ या सी # पर सी ++/सीएलआई का उपयोग करने का कोई फायदा है?
- 27. 'int' '' int 'से' int * 'को असाइन करने वाले पॉइंटर रूपांतरण के लिए असंगत पूर्णांक
- 28. int का स्पष्टीकरण? बनाम पूर्णांक
- 29. पूर्णांक फ़ील्ड टाइप करने के लिए पूर्णांक फ़ील्ड टाइप का उपयोग करने के लिए क्या है?
- 30. Node.js के लिए NginX का उपयोग करने का क्या फायदा है?
मुझे लगता है कि सटीक आकार मेरे कोड में बहुत ही कम मायने रखता है - उन मामलों में, निश्चित आकार के पूर्णांक का उपयोग करके केवल क्रूरता जोड़ता है और पोर्टेबिलिटी को कम करता है। आप क्या कर रहे हैं जिसके लिए आपको थोड़ा आकार जानने की आवश्यकता है? – delnan
मुझे लगता है कि यह उन मान्यताओं के लिए आता है जिन्हें आप बनाना चाहते हैं। क्या आप यह मानना चाहते हैं कि किसी विशेष मूल्य पर किसी भी विशिष्ट मूल्य पर हमेशा बिट्स की सटीक संख्या होगी? यदि ऐसा है, तो एक निश्चित आकार पूर्णांक सही विकल्प हो सकता है। यदि नहीं, तो आप केवल उस प्रकार का उपयोग करना चाहेंगे जो बिट्स की निश्चित न्यूनतम संख्या की गारंटी देता है। –