मुझे लगता है कि यह सख्ती से "प्रोग्रामिंग" नहीं है, लेकिन मैं थोड़ी देर के लिए इस पर विचार कर रहा हूं। जब आप एक चर बनाते हैं और इसे मान देते हैं, तो कंप्यूटर कहा गया चर के लिए बाइट्स की एक निश्चित संख्या आवंटित करता है और मान को संग्रहीत करता है, लेकिन यह कैसे पता चलता है कि उस स्मृति पते में किस प्रकार का डेटा है जब इसे बाद में उपयोग करने के लिए वापस आता है?कंप्यूटर कैसे ट्रैक करता है कि किस प्रकार का डेटा एक विशिष्ट स्मृति स्थान संग्रहीत कर रहा है?
उत्तर
आम तौर पर, ऐसा नहीं होता है। खैर, अधिकांश गतिशील भाषाओं में typeof
की तरह कुछ है, इसलिए आमतौर पर कुछ मेटाडेटा संग्रहीत करने वाला "ऑब्जेक्ट हेडर" होता है, जिसमें प्रकार (और अन्य जानकारी, जैसे रेफकाउंट) शामिल है। लेकिन आप अभी भी किसी ऑब्जेक्ट की यादृच्छिक खंड में स्मृति की पहचान नहीं कर सकते हैं (यह सब 1s और 0s है, सभी के बाद), इसलिए आपको हर समय एक सूचक की आवश्यकता है ...
पारंपरिक स्थिर/संकलित भाषाएं (आमतौर पर, ज़ाहिर है) ऐसी जानकारी स्टोर नहीं करते हैं। आखिरकार, यदि संकलक जानता है कि x
एक int
है, तो यह जानता है कि रजिस्टरों में कितने बाइट्स को लोड करने की आवश्यकता है और कौन से ऑप्शन को एडिटॉन के लिए उपयोग करना है। यहां तक कि जब आप वर्चुअल फ़ंक्शंस जोड़ते हैं, तो आपको केवल फ़ंक्शन पॉइंटर्स की एक तालिका संकलित करने की आवश्यकता होती है (बिना किसी मेटाडेटा की आवश्यकता होती है - obj->foo()
"इस पते पर कॉल कोड" के बजाय "vtable की nth प्रविष्टि लाने और इसे कॉल करने" के लिए अनुवाद करता है)।
कंप्यूटर नहीं करता है। कुछ भाषाएं अपने डेटा को प्रकारों के साथ टैग कर सकती हैं (विशेष रूप से, गतिशील भाषाएं, जहां कोई भी चर कोई डेटा प्रकार रख सकता है); अन्य भाषाओं में (जैसे सी), आप चर घोषित करते हैं, और संकलक जानता है कि जब भी यह उस चर के साथ जुड़े पते स्थान का उपयोग किसी विशिष्ट प्रकार के रूप में मानने के लिए करता है। कंप्यूटर स्वयं परवाह नहीं करता है, यह सब 8 बिट प्रति बाइट देखता है।
उत्तर इस बात पर निर्भर करता है कि जिस भाषा में आप काम कर रहे हैं उसका अर्थ है या संकलित किया गया है, और कई अन्य विवरणों पर। सी जैसी संकलित भाषा के लिए, जवाब यह है कि कंपाइलर, जबकि यह आपके कोड को मशीन कोड (या असेंबलर) में अनुवाद कर रहा है, में एक आंतरिक डेटा संरचना है जिसमें कहा गया है कि प्रत्येक चर क्या है - इसका प्रकार क्या है, जहां यह संग्रहीत है, और शायद ऑप्टिमाइज़ेशन उद्देश्यों के लिए भी अन्य जानकारी। (लेकिन जब तक आपका कोड वास्तव में चल रहा है, वह जानकारी पूरी हो गई है; इसे आपके कोड को संकलित करने की आवश्यकता है लेकिन इसे चलाने के लिए नहीं है।)
कुछ व्याख्या की गई भाषाओं के लिए, उत्तर यह है कि दुभाषिया का एक समान डेटा है संरचना जब भी चर का उपयोग किया जाता है देखा जाता है। दूसरों के लिए, सभी चरों को दुभाषिया द्वारा समान तरीके से माना जाता है लेकिन उनके मान में उनके साथ टाइप की गई जानकारी है।
- 1. कैसे पता चले कि एक प्रकार किस प्रकार है?
- 2. किस प्रकार का डेटा size_t होल्डिंग है?
- 3. मैं कैसे बता सकता हूं कि सर्वर किस प्रकार का प्रमाणीकरण उपयोग कर रहा है?
- 4. फ़ंक्शन किस प्रकार का है?
- 5. किस प्रकार का डेटा प्रकार "लंबा लंबा" है?
- 6. कैसे जांचें कि स्ट्रिंग किस प्रकार और किस प्रकार की संख्या का प्रतिनिधित्व करती है?
- 7. "सीखने का पेड़" किस प्रकार की डेटा संरचना है?
- 8. 'टाइप ऑब्जेक्ट पॉइंटर' और 'सिंक ब्लॉक इंडेक्स' में किस प्रकार का डेटा संग्रहीत किया जाता है?
- 9. PHP कैसे जानता है कि यह किस प्रकार के चर का उपयोग करता है (या करता है)?
- 10. स्मृति में किसी स्थान से DLL लोड हो रहा है
- 11. इससे पहले कि आप जानते हैं कि डेटा किस प्रकार का है, वैरिएबल घोषित करें?
- 12. किस प्रकार का जावा प्रकार "[बी" है?
- 13. ptr_vector स्मृति का प्रबंधन कैसे करता है?
- 14. आईफोन - यह कैसे पता चलता है कि यह किस वस्तु का जिक्र कर रहा है?
- 15. PHP का session.referer_check मुझे किस प्रकार से सुरक्षित करता है?
- 16. #define में पूरा डेटा किस डेटा प्रकार है?
- 17. PHP किस प्रकार का एल्गोरिदम उपयोग करता है?
- 18. यह जांच कर रहा है कि ऑब्जेक्ट एक ही प्रकार का है
- 19. जांच कर रहा है कि विशिष्ट उपयोगकर्ता की भूमिका
- 20. स्कैला एक विशिष्ट प्रकार के पैरामीटरकरण को प्रतिबंधित करता है
- 21. MySQL उपलब्ध स्मृति का उपयोग नहीं कर रहा है
- 22. यूनिटी कैसे करता है। पता है कि किस कन्स्ट्रक्टर का उपयोग करना है?
- 23. सी # का उपयोग कर कंप्यूटर की विशिष्ट पहचान कैसे करें?
- 24. एक विशिष्ट नाम स्थान
- 25. एसक्यूएल सर्वर - एक विशिष्ट डेटा प्रकार
- 26. क्या सी # एप ट्रैक करता है कि यह कब तक चल रहा है?
- 27. मैं कैसे बता सकता हूं कि mongoDB डेटा संग्रहीत कर रहा है? (अपने नहीं डिफ़ॉल्ट/डेटा/DB में!)
- 28. आईफोन/आईओएस: मैं कैसे बताऊंगा कि रनटाइम पर फोन किस स्थानीयकरण का उपयोग कर रहा है?
- 29. एंड्रॉइड समर्थन किस फ़ॉन्ट फ़ाइल प्रकार करता है?
- 30. यह निर्धारित करें कि स्मृति स्थान CPU कैश में है