मुझे प्रतीकात्मक और शाब्दिक स्थिरांक की परिभाषा और उपयोग के साथ पकड़ने में परेशानी हो रही है और मैं सोच रहा था कि क्या आप उन्हें समझा सकते हैं और उनके मतभेदों को उजागर कर सकते हैं। धन्यवाद!सी में शाब्दिक और प्रतीकात्मक स्थिरांक की अंतर और परिभाषा?
उत्तर
एक प्रतीक ऐसा कुछ है जो संकलक से संबंधित है। कंपाइलर const
का इलाज करता है जिस तरह से यह एक चर का इलाज करता है। दूसरी तरफ, #define
कुछ ऐसा है जो संकलक को इसके बारे में भी पता नहीं है, क्योंकि प्रीकंपलर इसे अपने मूल्य में बदल देता है। यह खोज-और-प्रतिस्थापन की तरह है। precompiler
b += 5;
में तब्दील हो आप
#define A 5
और फिर
b += A;
करते हैं और सभी संकलक देखता संख्या 5
मुझे लगता है कि आपका क्या मतलब है कि एक शाब्दिक स्थिरता "स्ट्रिंग" या 2 या झूठी जैसी एक प्राचीन अभिव्यक्ति है, जबकि एक प्रतीकात्मक व्यक्ति तब होता है जब आप इसे नाम देते हैं, जैसे const int MagicNumber = 42. दोनों का उपयोग किया जा सकता है अभिव्यक्ति के रूप में, लेकिन आप बाद वाले को किसी नाम से संदर्भित कर सकते हैं। उपयोगी यदि आप कई स्थानों से एक ही स्थिरता का उपयोग करते हैं।
एक शाब्दिक निरंतर एक है जहां भी इसकी आवश्यकता हो, सीधे आपके प्रोग्राम में टाइप किया गया मूल्य। उदाहरण के लिए
int tempInt = 10;
tempInt प्रकार int का एक चर है; 10 एक शाब्दिक स्थिर है। आप 10 को मान असाइन नहीं कर सकते हैं, और इसका मान बदला नहीं जा सकता है। एक प्रतीकात्मक निरंतर एक स्थिर होता है जिसे किसी नाम से दर्शाया जाता है, जैसे एक चर का प्रतिनिधित्व किया जाता है। एक चर के विपरीत, हालांकि, निरंतर प्रारंभ होने के बाद, इसका मान बदला नहीं जा सकता है।
अपने कार्यक्रम एक पूर्णांक चर नामित छात्रों और एक अन्य नामित वर्ग हैं, तो आप की गणना कर सकता है कि कितने छात्रों, वर्गों में से एक ज्ञात संख्या को देखते हुए, यदि आप पता था कि वर्ग प्रति 15 छात्रों थे:
छात्रों = कक्षाएं * 15;
(पिछली पोस्ट से उधार) एक शाब्दिक स्थिरता आपके प्रोग्राम में सीधे टाइप किए जाने वाले मूल्य को कहीं भी आवश्यक है। उदाहरण के लिए
int breakpoint = 10;
परिवर्तनीय ब्रेकपॉइंट एक पूर्णांक (int) है; 10 एक शाब्दिक स्थिर है। आप 10 को मान असाइन नहीं कर सकते हैं, और इसका मान बदला नहीं जा सकता है। एक चर के विपरीत, एक मान (प्रारंभिक) असाइन किए जाने के बाद स्थिर को बदला नहीं जा सकता है।
एक प्रतीक ऐसा कुछ है जो संकलक से संबंधित है। इस उदाहरण में, टेन # डेफिन फ़ंक्शन का उपयोग करके बनाई गई प्रतीकात्मक स्थिरता है। एक # परिभाषा कुछ ऐसा है जो संकलक को भी पता नहीं है, क्योंकि प्रीकंपलर इसे अपने निर्दिष्ट (परिभाषित) मान में बदल देता है। प्रीकंपलर आपके प्रोग्राम के अंदर स्थिरता के साथ प्रत्येक प्रतीक को खोजता है और प्रतिस्थापित करता है।
#define TEN 10 /* These two lines of code become one... */
breakpoint += TEN; /* after running through the precompiler */
precompiler
Breakpoint += 10;
संकलक कभी नहीं देखता टेन लेकिन केवल उसको दिए गए मूल्य में तब्दील, 10 क्यों उपयोगी है?क्या होगा यदि ब्रेकपॉइंट 11 में बदल दिया गया है। पूरे कार्यक्रम को देखने और प्रत्येक वैरिएबल परिभाषा को नए मूल्य में बदलने के बजाय, जो एक शाब्दिक स्थिरांक का उपयोग करके सेट किया गया था, 10, एकल प्रतीक निरंतर परिभाषा को बदलें ... 11 से 11 और प्रीकंपलर को आपके लिए बदलाव करने दें।
- 1. मैक्रो परिभाषा और सी ++
- 2. सी चर और स्थिरांक मान
- 3. सी ++ 11: साधारण स्ट्रिंग शाब्दिक और यूटीएफ -8 स्ट्रिंग के बीच अंतर का उदाहरण शाब्दिक?
- 4. विवाद: सी ++ मानक और विंडोज कार्यान्वयन में wchar_t स्ट्रिंग की परिभाषा?
- 5. स्थिरांक और STL कंटेनरों में गैर स्थिरांक
- 6. फ़ाइल.कॉपी() और प्रतीकात्मक लिंक
- 7. स्थिरांक वस्तु और स्थिरांक निर्माता
- 8. सी ++ में अंतर और आयात अंतर
- 9. सरणी आकार और स्थिरांक
- 10. इनलाइन और # परिभाषा के बीच अभ्यास में क्या अंतर है?
- 11. प्रतीकात्मक डेरिवेटिव और अनुसंधान में सरलीकरण
- 12. सी ++ द्विआधारी लगातार/शाब्दिक
- 13. सिंगलेट और स्थिरांक
- 14. सी # में ++ मैं ऑपरेटर अंतर और सी ++
- 15. सी # में शाब्दिक हैश?
- 16. क्लोजर परिभाषा और उदाहरण
- 17. शाब्दिक और सेगमेंट मार्ग के बीच क्या अंतर है?
- 18. सी में स्थिरांक ints ++
- 19. typedef और स्थिरांक संकेत
- 20. मित्र वर्ग और एक्सेसर अनुभागों की परिभाषा
- 21. सी में स्थिरांक संशोधक
- 22. उद्देश्य c - स्थिर सदस्यों और स्थिरांक
- 23. स्ट्रिंग शाब्दिक और ऑब्जेक्ट वैल्यू
- 24. जावास्क्रिप्ट स्थिरांक | स्टाइल और कीवर्ड
- 25. PHP- वैश्विक चर और स्थिरांक के बीच क्या अंतर है
- 26. सी में मैक्रो स्थिरांक और निरंतर चर के बीच क्या अंतर है?
- 27. अस्थिर और स्थिरांक सूचक
- 28. स्थिरांक और एसटीएल कंटेनर
- 29. स्थिर स्थिरांक और कॉन्स के बीच क्या अंतर है?
- 30. स्ट्रिंग इंटर्निंग की खोज लागत और शाब्दिक तारों की घोषणा
सी में (और प्रश्न टैग किया गया है), 'const int' ऑब्जेक्ट स्थिर नहीं है। सी में एक नामित निरंतर (एक प्रतीकात्मक स्थिरांक) उत्पन्न करने के लिए या तो '# परिभाषित' या enums का उपयोग करना होगा। – AnT
हाहा, क्षमा करें, मैंने सोचा कि मैं सी # प्रश्न ब्राउज़ कर रहा था :) – fejesjoco