फोरट्रान में> = 90, सबसे अच्छा तरीका सटीक आप की जरूरत निर्दिष्ट करने के लिए आंतरिक कार्यों का उपयोग है - यह दोनों पोर्टेबिलिटी की गारंटी देता है और है कि आप मिल सटीक जो आपको चाहिए। उदाहरण के लिए, पूर्णांकों प्राप्त करने के लिए मैं और my_int कि कम से कम 8 दशमलव अंक का समर्थन करेंगे, आप इस्तेमाल कर सकते हैं:
integer, parameter :: RegInt_K = selected_int_kind (8)
integer (kind=RegInt_K) :: i, my_int
परिभाषित करने के बाद "RegInt_K" (या जो भी नाम आप चुनें) एक पैरामीटर के रूप, आप इसे भर में उपयोग कर सकते हैं प्रतीक के रूप में आपका कोड। यह परिशुद्धता को बदलने में भी आसान बनाता है।
8 या 9 दशमलव अंकों का अनुरोध आमतौर पर 4-बाइट पूर्णांक प्राप्त करेगा।
पूर्णांक * 4 एक सामान्य एक्सटेंशन है जो 4-बाइट पूर्णांक निर्दिष्ट करने के लिए पुराने फोरट्रान पर वापस जा रहा है।
पूर्णांक (4) या पूर्णांक (RegInt_K) पूर्णांक (प्रकार = 4) या पूर्णांक (kind = RegInt_K) के लिए कम हैं। पूर्णांक (4) पूर्णांक * 4 के समान नहीं है और गैर पोर्टेबल है - भाषा मानक प्रकार के संख्यात्मक मान निर्दिष्ट नहीं करता है। अधिकांश कंपाइलर 4-बाइट पूर्णांक के लिए प्रकार = 4 का उपयोग करते हैं - इन कंपाइलर्स पूर्णांक * 4 और पूर्णांक (4) के लिए एक ही पूर्णांक प्रकार प्रदान करेगा - लेकिन अपवाद हैं, इसलिए पूर्णांक (4) गैर-पोर्टेबल और सर्वोत्तम से बचा है ।
वास्तविकताओं के लिए दृष्टिकोण समान है।
अद्यतन: यदि आप आवश्यक परिशुद्धता से संख्यात्मक प्रकार निर्दिष्ट नहीं करना चाहते हैं, लेकिन इसके बजाय वे जिस स्टोरेज का उपयोग करेंगे, फोर्ट्रान 2008 एक विधि प्रदान करता है। reals और पूर्णांकों भंडारण के टुकड़े की संख्या से, उदाहरण के लिए, use
ISO_FORTRAN_ENV
मॉड्यूल ing के बाद निर्दिष्ट किया जा सकता एक 4-बाइट (32-बिट) पूर्णांक के लिए:
use ISO_FORTRAN_ENV
integer (int32) :: MyInt
gfortran पुस्तिका "आंतरिक तहत प्रलेखन है मॉड्यूल "।
स्रोत
2010-07-03 05:41:19
जो एक शानदार स्पष्टीकरण था! चौका देने वाला! अति उत्कृष्ट! यह अब मुझे क्रिस्टल स्पष्ट है ..: डी बहुत बहुत धन्यवाद! – Sam