आज के क्रॉस-प्लेटफ़ॉर्म C ++ (या C) दुनिया में हमारे पास :
Data model | short | int | long | long long | pointers/size_t | Sample operating systems
...
LLP64/IL32P64 16 32 32 64 64 Microsoft Windows (x86-64 and IA-64)
LP64/I32LP64 16 32 64 64 64 Most Unix and Unix-like systems, e.g. Solaris, Linux, BSD, and OS X; z/OS
...
आज इसका क्या मतलब है, यह है कि किसी भी "सामान्य" (हस्ताक्षरित) पूर्णांक के लिए, intपर्याप्त होगा और संभवतः C ++ एप्लिकेशन कोड लिखते समय डिफ़ॉल्ट पूर्णांक प्रकार के रूप में उपयोग किया जा सकता है। यह भी होगा - वर्तमान व्यावहारिक उद्देश्यों के लिए - प्लेटफार्मों में एक सुसंगत आकार है।
Iff के उपयोग के मामले में कम से कम 64 बिट्स की आवश्यकता होती है, हम आज का उपयोग कर सकते हैं long long, हालांकि संभवतः बिटनेस-निर्दिष्ट प्रकारों में से एक का उपयोग करके या __int64प्रकार अधिक समझ में आ सकता है।
यह longबीच में छोड़ देता है, और हम longअपने एप्लिकेशन कोड के उपयोग पर एकमुश्त प्रतिबंध लगाने पर विचार कर रहे हैं ।
क्या यह समझ में आता है , या longआधुनिक C ++ (या C) कोड का उपयोग करने के लिए कोई मामला है जिसे क्रॉस प्लेटफॉर्म चलाना है? (प्लेटफ़ॉर्म डेस्कटॉप, मोबाइल डिवाइस, लेकिन माइक्रो-कंट्रोलर, डीएसपी आदि जैसी चीजें नहीं हैं)
संभवतः दिलचस्प पृष्ठभूमि लिंक:
- C ++ मानक का आकार, लंबे प्रकार का होना बताता है?
- Win64 टीम ने LLP64 मॉडल क्यों चुना?
- 64-बिट प्रोग्रामिंग मॉडल: क्यों LP64? (कुछ वृद्ध)
- है
longकम से कम 32 बिट होने की गारंटी? (यह नीचे टिप्पणी चर्चा को संबोधित करता है। उत्तर )
long32 बिट्स की गारंटी देने का एकमात्र तरीका है। int16 बिट्स हो सकते हैं इसलिए कुछ अनुप्रयोगों के लिए यह पर्याप्त नहीं है। हां, intआधुनिक संकलक पर कभी-कभी 16 बिट्स होते हैं। हां, लोग माइक्रोकंट्रोलर पर सॉफ्टवेयर लिखते हैं। मैं बहस चाहते हैं और अधिक लोगों को सॉफ्टवेयर के Arduinos आदि वृद्धि का उल्लेख नहीं करने के लिए iPhone और Android उपकरणों की वृद्धि के साथ पीसी पर से माइक्रोकंट्रोलर्स के बारे में अधिक उपयोगकर्ताओं है कि लिखने
intअभी भी बहुत अधिक 16 बिट्स हैं। मुझे यह कहने से नफरत है, लेकिन अगर आप "आज के क्रॉस-प्लेटफॉर्म वर्ल्ड" के बारे में लिखने जा रहे हैं, तो आप पूरे भारतीय उपमहाद्वीप को नजरअंदाज नहीं कर सकते।