टाइप-inferred स्थिरांक केवल अदिश मूल्यों हो सकता है - पूर्णांकों की तरह अर्थात बातें, युगल, आदि स्थिरांक की इन प्रकार के लिए, संकलक वास्तव में निरंतर के मूल्य जब भी यह उन्हें भाव में मिलता है के साथ लगातार की प्रतीक की जगह है।
दूसरी तरफ टाइप किए गए स्थिरांक, संरचित मूल्य - सरणी और अभिलेख हो सकते हैं। इन लोगों को निष्पादन योग्य में वास्तविक भंडारण की आवश्यकता है - यानी उन्हें उनके लिए आवंटित भंडारण की आवश्यकता है, जब ओएस निष्पादन योग्य लोड करता है, टाइप किए गए स्थिरांक का मान शारीरिक रूप से स्मृति में किसी स्थान पर निहित होता है।
यह समझाने के लिए कि ऐतिहासिक रूप से, प्रारंभिक डेल्फी और उसके पूर्ववर्ती टर्बो पास्कल में टाइप किए गए स्थिरांक क्यों लिखते हैं (और इस प्रकार अनिवार्य रूप से वैश्विक चर शुरू किए जाते हैं), हमें डॉस के दिनों में वापस जाना होगा।
डॉस वास्तविक मोड में x86 शब्दों में चलता है। इसका अर्थ यह है कि प्रोग्राम्स के पास वर्चुअल-भौतिक मैपिंग करने वाले MMU बिना भौतिक मेमोरी तक सीधे पहुंच है। जब प्रोग्राम में स्मृति तक सीधे पहुंच होती है, तो कोई स्मृति सुरक्षा प्रभावी नहीं होती है। दूसरे शब्दों में, यदि किसी दिए गए पते पर स्मृति है, तो यह रीयल-मोड में पठनीय और लिखने योग्य दोनों है।
तो, टाइप किए गए निरंतर वाले डॉस के लिए टर्बो पास्कल प्रोग्राम में, जिसका मान रनटाइम पर स्मृति में किसी पते पर आवंटित किया जाता है, जो टाइप किया गया निरंतर लिखने योग्य होगा। रास्ते में कोई हार्डवेयर एमएमयू नहीं हो रहा है और प्रोग्राम को इसे लिखने से रोक रहा है। इसी तरह, क्योंकि पास्कल के पास 'कॉन्स्टनेस' की कोई धारणा नहीं है, सी ++ में, आपको रोकने के लिए टाइप सिस्टम में कुछ भी नहीं है। बहुत से लोगों ने इसका लाभ उठाया, क्योंकि उस समय टर्बो पास्कल और डेल्फी ने उस समय के रूप में वैश्विक चर को शुरू नहीं किया था। स्मृति प्रबंधन इकाई:
Windows के लिए आगे बढ़ते, वहाँ स्मृति पते और भौतिक पते के बीच एक परत है। यह चिप उस मेमोरी पते का पेज इंडेक्स (एक स्थानांतरित मुखौटा) लेता है जिसे आप एक्सेस करने का प्रयास कर रहे हैं, और इस पृष्ठ के गुणों को page table में देखता है। इन विशेषताओं में पठनीय, लिखने योग्य, और आधुनिक x86 चिप्स, गैर निष्पादन योग्य झंडे शामिल हैं। इस समर्थन के साथ, .EXE या .DLL के अनुभागों को गुणों के साथ चिह्नित करना संभव है जैसे कि जब Windows लोडर निष्पादन योग्य छवि को स्मृति में लोड करता है, तो यह स्मृति पृष्ठों के लिए उचित पृष्ठ विशेषताओं को निर्दिष्ट करता है जो इन वर्गों के भीतर डिस्क पृष्ठों पर मैप करते हैं।
जब डेल्फी संकलक के 32-बिट Windows संस्करण के आसपास आ गया, यह इस प्रकार भावना स्थिरांक-तरह बातें वास्तव में स्थिरांक बनाने के लिए, बना के रूप में ओएस भी इस सुविधा है।
यह चाल है। Google कंपाइलर निर्देश {$ J +} होने का खुलासा करता है। यह प्रोजेक्ट विकल्पों में भी है, शायद वहां देखा जाना चाहिए था: पी – Blorgbeard
हाँ मैं इससे पहले मारा गया था। (मेरी प्रारंभिक पोस्ट के बाद विवरण जोड़ने के लिए संपादित) – Ray
आईएमएचओ '{$ WRITABLECONST OFF}' 'J +}' से भी betterer होगा। –