உள்ளூர் மற்றும் உலகளாவிய மாறுபாட்டிற்கு இடையிலான வேறுபாடு

நூலாசிரியர்: Laura McKinney
உருவாக்கிய தேதி: 1 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 18 அக்டோபர் 2024
Anonim
c இல் உள்ள உள்ளூர் மற்றும் உலகளாவிய மாறிகளுக்கு இடையிலான வேறுபாடு
காணொளி: c இல் உள்ள உள்ளூர் மற்றும் உலகளாவிய மாறிகளுக்கு இடையிலான வேறுபாடு

உள்ளடக்கம்


நாம் முன்னர் விவாதித்தபடி, ஒரு மாறி என்பது ஒரு நினைவக இருப்பிடத்திற்கு வழங்கப்படும் ஒரு பெயர், அது பயன்படுத்தப்படுவதற்கு முன்பு அறிவிக்கப்பட வேண்டும். சி இல், அனைத்து மாறிகள் நிரலின் தொடக்கத்தில் அறிவிக்கப்படுகின்றன. சி ++ இல், அறிவுறுத்தல்களில் பயன்படுத்தப்படுவதற்கு முன்பு, எந்த நேரத்திலும் மாறிகள் அறிவிக்கப்படலாம்.

மாறிகள் ‘உள்ளூர்’ மற்றும் ‘உலகளாவிய’ மாறி என வகைப்படுத்தப்படுகின்றன, இது எங்கள் விவாதத்தின் முக்கிய தலைப்பு. இங்கே உள்ளூர் மற்றும் உலகளாவிய மாறிக்கு இடையிலான முக்கிய வேறுபாடு என்னவென்றால், ஒரு செயல்பாட்டு மாடிக்குள் ஒரு உள்ளூர் மாறி அறிவிக்கப்படுகிறது. இதற்கு மாறாக, நிரலில் உள்ள செயல்பாடுகளுக்கு வெளியே உலகளாவிய மாறி அறிவிக்கப்படுகிறது.

ஒப்பீட்டு விளக்கப்படத்துடன் உள்ளூர் மற்றும் உலகளாவிய மாறிக்கு இடையில் இன்னும் சில வேறுபாடுகளைப் படிப்போம்.

  1. ஒப்பீட்டு விளக்கப்படம்
  2. வரையறை
  3. முக்கிய வேறுபாடுகள்
  4. நன்மைகள்
  5. குறைபாடுகள்
  6. முடிவுரை

ஒப்பீட்டு விளக்கப்படம்:

ஒப்பீட்டுக்கான அடிப்படை உள்ளூர் மாறுபடும் உலகளாவிய மாறுபடும்
பிரகடனம் ஒரு செயல்பாட்டிற்குள் மாறிகள் அறிவிக்கப்படுகின்றன.
எந்தவொரு செயல்பாட்டிற்கும் வெளியே மாறிகள் அறிவிக்கப்படுகின்றன.
நோக்கம்
ஒரு செயல்பாட்டிற்குள், அவை அறிவிக்கப்படுகின்றன.நிரல் முழுவதும்.
மதிப்பு
துவக்கப்படாத உள்ளூர் மாறி விளைவாக குப்பை மதிப்பை சேமிக்கிறது.துவக்கப்படாத உலகளாவிய மாறி இயல்புநிலையாக பூஜ்ஜியத்தை சேமிக்கிறது.
அணுகல் அறிக்கைகளால் மட்டுமே அணுகப்படுகிறது, அவை அறிவிக்கப்பட்ட ஒரு செயல்பாட்டின் உள்ளே. முழு நிரலிலும் எந்த அறிக்கையினாலும் அணுகப்பட்டது.
தரவு பகிர்வுவழங்கப்படவில்லைஎளிதான
வாழ்க்கைசெயல்பாட்டுத் தொகுதி நுழைந்து வெளியேறும்போது அழிக்கப்படும் போது உருவாக்கப்பட்டது. உங்கள் நிரல் இயக்கும் முழு நேரத்திலும் இருங்கள்.
சேமிப்பு
குறிப்பிடப்படாவிட்டால் உள்ளூர் மாறிகள் அடுக்கில் சேமிக்கப்படும்.
ஒரு தொகுப்பால் தீர்மானிக்கப்பட்ட ஒரு நிலையான இடத்தில் சேமிக்கப்படுகிறது.
அளவுரு கடந்துஅவசியம் தேவைஉலகளாவிய மாறிகள் தேவையில்லை.
மாறி மதிப்பில் மாற்றங்கள்உள்ளூர் மாறியில் குறிக்கப்பட்ட எந்த மாற்றமும் நிரலின் பிற செயல்பாடுகளை பாதிக்காது.ஒரு செயல்பாட்டின் உலகளாவிய மாறியில் பயன்படுத்தப்படும் மாற்றங்கள் முழு நிரலிலும் ஏற்படும் மாற்றங்களை பிரதிபலிக்கின்றன.

உள்ளூர் மாறியின் வரையறை

ஒரு உள்ளூர் மாறி எப்போதும் ஒரு செயல்பாட்டுத் தொகுதிக்குள் அறிவிக்கப்படுகிறது. சி இல், ஒரு குறியீடு தொகுதியின் தொடக்கத்தில் ஒரு உள்ளூர் மாறி அறிவிக்கப்படுகிறது. சி ++ இல், அவை பயன்படுத்தப்படுவதற்கு முன்பு குறியீடு தொகுதியில் எங்கும் அறிவிக்கப்படலாம். உள்ளூர் மாறிகள் அறிவிக்கப்பட்ட ஒரு செயல்பாட்டின் உள்ளே எழுதப்பட்ட அறிக்கைகளால் மட்டுமே உள்ளூர் மாறிகள் அணுக முடியும். ஒரே திட்டத்தின் வேறு எந்த செயல்பாட்டினாலும் அவற்றை அணுக முடியாது என்ற பொருளில் அவை பாதுகாப்பானவை.


செயல்பாட்டின் தொகுதி செயல்பாட்டில் இருக்கும் வரை உள்ளூர் மாறி இருக்கும், மேலும் மரணதண்டனை தொகுதியிலிருந்து வெளியேறிய பின் அழிக்கப்படும். மரணதண்டனை அறிவிக்கப்பட்ட தொகுதியை விட்டு வெளியேறியவுடன் உள்ளூர் மாறிகள் அவற்றின் உள்ளடக்கத்தை இழக்கின்றன.

அதன் பின்னணியில் உள்ள காரணம் என்னவென்றால், உள்ளூர் மாறிகள் அவற்றின் சிறப்பு சேமிப்பிடம் குறிப்பிடப்படாவிட்டால் அடுக்கில் சேமிக்கப்படும். ஸ்டேக் இயற்கையில் மாறும், மற்றும் நினைவக இருப்பிடத்தின் மாற்றம் ஒரு செயல்பாட்டின் தொகுதி இருந்தவுடன் உள்ளூர் மாறி அவற்றின் மதிப்பைக் கொண்டிருக்கவில்லை என்பதற்கான காரணத்திற்கு வழிவகுக்கிறது.

குறிப்பு:
இருப்பினும், ‘நிலையான’ மாற்றியமைப்பைப் பயன்படுத்தி உள்ளூர் மாறியின் மதிப்பைத் தக்க வைத்துக் கொள்ள ஒரு வழி உள்ளது.

உலகளாவிய மாறுபாட்டின் வரையறை

ஒரு உலகளாவிய மாறி ஒரு நிரலில் உள்ள அனைத்து செயல்பாடுகளுக்கும் வெளியே அறிவிக்கப்படுகிறது. உள்ளூர் மாறிகள் போலல்லாமல், ஒரு நிரலில் இருக்கும் எந்தவொரு செயல்பாட்டினாலும் உலகளாவிய மாறியை அணுக முடியும். உலகளாவிய மாறிகள் மிகவும் நம்பகமானவை அல்ல, ஏனெனில் அவற்றின் மதிப்பை நிரலில் உள்ள எந்த செயல்பாட்டாலும் மாற்ற முடியும்.


முழு நிரலும் முழுமையாக செயல்படுத்தப்படும் வரை அவை இருக்கும். நிரல் செயல்படும் வரை உலகளாவிய மாறிகள் அவற்றின் மதிப்புகளைத் தக்கவைத்துக்கொள்கின்றன. காரணம், அவை தொகுப்பாளரால் தீர்மானிக்கப்படும் நினைவகத்தின் நிலையான பகுதியில் சேமிக்கப்படுகின்றன.

ஒரே தரவை பல செயல்பாடுகள் அணுகும் சூழ்நிலைகளில் உலகளாவிய மாறி உதவியாக இருக்கும். உலகளாவிய மாறியின் மதிப்பில் தேவையற்ற மாற்றங்கள் இருக்கலாம் என்பதால், அதிக எண்ணிக்கையிலான உலகளாவிய மாறிகளைப் பயன்படுத்துவது சிக்கலாக இருக்கலாம்.

  1. உள்ளூர் மாறிகள் ‘லோக்கல்’ என்று அழைக்கப்படுகின்றன, ஏனெனில் அவை ஒரு செயல்பாட்டில் எழுதப்பட்ட அறிக்கைகளுக்கு மட்டுமே தெரியும், அவை அறிவிக்கப்படுகின்றன, மேலும் அவை அந்த செயல்பாட்டுத் தொகுதிக்கு வெளியே இருக்கும் வேறு எந்த செயல்பாட்டிற்கும் தெரியாது. உலகளாவிய மாறி விஷயத்தில், அவை ஒரு நிரலில் இருக்கும் ஒவ்வொரு செயல்பாட்டிற்கும் அறியப்படுகின்றன; எனவே, அவை ‘உலகளாவிய’ என்று அழைக்கப்படுகின்றன.
  2. நிரல் செயல்படுத்தும் கட்டத்தில் இருக்கும் வரை உலகளாவிய மாறிகள் அவற்றின் மதிப்பைத் தக்கவைத்துக்கொள்கின்றன, ஏனெனில் அவை தொகுப்பாளரால் தீர்மானிக்கப்படும் ஒரு நிலையான இடத்தில் சேமிக்கப்படும். உள்ளூர் மாறிகள் அடுக்கில் சேமிக்கப்படுகின்றன; எனவே, அவை ‘ஸ்டேக்’ இயற்கையில் மாறும் என்பதால் அவற்றின் மதிப்பைத் தக்கவைத்துக்கொள்ளாது, ஆனால் தொகுப்பாளரை ‘நிலையான’ மாற்றியமைப்பைப் பயன்படுத்தி அவற்றின் மதிப்பைத் தக்க வைத்துக் கொள்ளலாம்.
  3. ஒரு உலகளாவிய மற்றும் ஒரு உள்ளூர் மாறி ஒரே பெயரில் அறிவிக்கப்பட்டால், உள்ளூர் மாறி அறிவிக்கப்பட்ட ஒரு குறியீடு தொகுதியின் அனைத்து அறிக்கைகளும் ஒரு உள்ளூர் மாறியை மட்டுமே குறிக்கும் மற்றும் உலகளாவிய மாறிக்கு எந்த விளைவையும் ஏற்படுத்தாது.
  4. உள்ளூர் மாறி அறிவிக்கப்பட்ட தொகுதியிலிருந்து நிரலின் கட்டுப்பாடு வெளியேறும் போது ஒரு உள்ளூர் மாறி அழிக்கப்படுகிறது. இருப்பினும், முழு நிரலும் நிறுத்தப்படும்போது உலகளாவிய மாறி அழிக்கப்படுகிறது.

நன்மைகள்

உள்ளூர் மாறி

  • ஒரு உள்ளூர் மாறியின் முக்கிய நன்மை என்னவென்றால், தரவின் தற்செயலான மாற்றம் இல்லை. மாறி ஒரு தொகுதிக்குள் அறிவிக்கப்படுகிறது, மேலும் இந்த குறியீடு தொகுதி மாறியைப் பயன்படுத்துகிறது மற்றும் விரும்பத்தகாத பக்க விளைவுகளைத் தவிர்க்கிறது.
  • உள்ளூர் மாறி ஒரு குறிப்பிட்ட காலத்திற்கு நினைவகத்தை பயன்படுத்துகிறது, மாறி கொண்ட தொகுதி செயல்படுத்தப்படும் போது மட்டுமே.

உலகளாவிய மாறி

  • ஒரே தரவை கையாளும் நிரலில் பல செயல்பாடுகளை நீங்கள் கையாளும் போது உலகளாவிய மாறிகள் மிகவும் பயனுள்ளதாக இருக்கும்.
  • உலகளாவிய மாறியை செயல்படுத்துவதன் மூலம் முழு நிரலிலும் பயன்படுத்த வேண்டிய மாற்றங்கள் எளிதாக இருக்கும்.
  • எங்கிருந்தும் அல்லது நிரலின் எந்தவொரு சீரற்ற செயல்பாட்டின் மூலமும் நாம் அணுகலாம்.

குறைபாடுகள்

உள்ளூர் மாறி

  • உள்ளூர் மாறியின் நோக்கம் தடைசெய்யப்பட்டுள்ளது.
  • தரவு பகிர்வை தடை செய்கிறது.
  • அழைப்புகளுக்கு இடையில் தரவை அவர்களால் தக்கவைக்க முடியாது, ஏனெனில் ஒவ்வொரு உள்ளீட்டிலும் உள்ளூர் மாறிகள் உருவாக்கப்பட்டு அகற்றப்பட்டு தொகுதியிலிருந்து வெளியேறுகின்றன. இருப்பினும், மதிப்புகளைத் தக்கவைக்க நிலையான மாற்றியமைப்பைப் பயன்படுத்தலாம்.

உலகளாவிய மாறி

  • அதிக எண்ணிக்கையிலான உலகளாவிய மாறிகளைப் பயன்படுத்துவதால் நிரல் பிழைகள் உருவாகலாம்.
  • நிரல் முழுவதும் பரப்பப்பட்ட உலகளாவிய மாறிகள் காரணமாக ஏற்படும் மாற்றங்கள் தற்செயலாக ஏற்படுவதே இது ஏற்படுத்தும் முக்கிய சிக்கல்.
  • குறியீடு மறுசீரமைப்பை நடத்துவதற்கான தேவையையும் இது உயர்த்தக்கூடும், இது முழு நிரல் குறியீடும் மறுசீரமைக்கப்பட்ட மிக விரிவான செயல்முறையாகும்.

முடிவுரை:

நிரலை எழுதும் போது உள்ளூர் மற்றும் உலகளாவிய மாறிகள் இரண்டும் அவசியம் மற்றும் சமமாக தேவை. இருப்பினும், ஒரு பெரிய எண்ணிக்கையிலான உலகளாவிய மாறிகள் அறிவிப்பது ஒரு பாரிய திட்டத்தில் சிக்கலாக இருக்கலாம், ஏனெனில் இது உலகளாவிய மாறிக்கு தேவையற்ற மாற்றங்களை ஏற்படுத்தக்கூடும்; ஒரு திட்டத்தின் எந்த பகுதி அந்த மாற்றத்தை ஏற்படுத்தியது என்பதை அடையாளம் காண்பது கடினமாகிவிடும். எனவே, ஒருவர் தேவையற்ற உலகளாவிய மாறிகள் என்று அறிவிப்பதைத் தவிர்க்க வேண்டும்.