స్థానిక మరియు గ్లోబల్ వేరియబుల్ మధ్య వ్యత్యాసం
విషయము
- పోలిక చార్ట్:
- లోకల్ వేరియబుల్ యొక్క నిర్వచనం
- గ్లోబల్ వేరియబుల్ యొక్క నిర్వచనం
- ప్రయోజనాలు
- ప్రతికూలతలు
- ముగింపు:
మేము ఇంతకుముందు చర్చించినట్లుగా, వేరియబుల్ అనేది ఒక పేరు, ఇది మెమరీ స్థానానికి ఇవ్వబడుతుంది మరియు దానిని ఉపయోగించటానికి ముందు ప్రకటించాలి. సి లో, అన్ని వేరియబుల్స్ ప్రోగ్రామ్ ప్రారంభంలో ప్రకటించబడతాయి. C ++ లో, వేరియబుల్స్ సూచనలలో ఉపయోగించబడటానికి ముందు, ఏ సమయంలోనైనా ప్రకటించవచ్చు.
వేరియబుల్స్ ‘లోకల్’ మరియు ‘గ్లోబల్’ వేరియబుల్గా వర్గీకరించబడ్డాయి, ఇది మా చర్చ యొక్క ప్రధాన అంశం. ఇక్కడ స్థానిక మరియు గ్లోబల్ వేరియబుల్ మధ్య ప్రధాన వ్యత్యాసం ఏమిటంటే ఒక ఫంక్షన్ బ్లాక్ లోపల లోకల్ వేరియబుల్ డిక్లేర్ చేయబడింది. దీనికి విరుద్ధంగా, గ్లోబల్ వేరియబుల్ ప్రోగ్రామ్లోని ఫంక్షన్ల వెలుపల ప్రకటించబడింది.
పోలిక చార్ట్తో పాటు స్థానిక మరియు గ్లోబల్ వేరియబుల్ మధ్య మరికొన్ని తేడాలను అధ్యయనం చేద్దాం.
- పోలిక చార్ట్
- నిర్వచనం
- కీ తేడాలు
- ప్రయోజనాలు
- ప్రతికూలతలు
- ముగింపు
పోలిక చార్ట్:
పోలిక కోసం ఆధారం | స్థానిక వేరియబుల్ | గ్లోబల్ వేరియబుల్ |
---|---|---|
ప్రకటన | ఒక ఫంక్షన్ లోపల వేరియబుల్స్ ప్రకటించబడతాయి. | ఏదైనా ఫంక్షన్ వెలుపల వేరియబుల్స్ ప్రకటించబడతాయి. |
స్కోప్ | ఒక ఫంక్షన్ లోపల, లోపల అవి ప్రకటించబడతాయి. | కార్యక్రమం అంతటా. |
విలువ | చెత్త విలువను నిల్వ చేయడానికి ప్రారంభించని స్థానిక వేరియబుల్ ఫలితం. | ప్రారంభించని గ్లోబల్ వేరియబుల్ అప్రమేయంగా సున్నా నిల్వ చేస్తుంది. |
యాక్సెస్ | స్టేట్మెంట్ల ద్వారా మాత్రమే యాక్సెస్ చేయబడతాయి, అవి ప్రకటించబడిన ఫంక్షన్ లోపల. | మొత్తం ప్రోగ్రామ్లోని ఏదైనా స్టేట్మెంట్ ద్వారా ప్రాప్యత చేయబడింది. |
డేటా భాగస్వామ్యం | సమకూర్చబడలేదు | సులభ పరచిన |
లైఫ్ | ఫంక్షన్ బ్లాక్ ఎంటర్ అయినప్పుడు సృష్టించబడుతుంది మరియు నిష్క్రమించినప్పుడు నాశనం అవుతుంది. | మీ ప్రోగ్రామ్ అమలు చేస్తున్న మొత్తం సమయం వరకు ఉనికిలో ఉండండి. |
నిల్వ | పేర్కొనకపోతే స్థానిక వేరియబుల్స్ స్టాక్లో నిల్వ చేయబడతాయి. | కంపైలర్ నిర్ణయించిన స్థిర ప్రదేశంలో నిల్వ చేయబడుతుంది. |
పారామితి ప్రయాణిస్తున్న | తప్పనిసరిగా అవసరం | గ్లోబల్ వేరియబుల్స్ కోసం అవసరం లేదు. |
వేరియబుల్ విలువలో మార్పులు | స్థానిక వేరియబుల్లో సూచించిన ఏదైనా మార్పు ప్రోగ్రామ్ యొక్క ఇతర విధులను ప్రభావితం చేయదు. | ఫంక్షన్ యొక్క గ్లోబల్ వేరియబుల్లో వర్తించే మార్పులు మొత్తం ప్రోగ్రామ్లోని మార్పులను ప్రతిబింబిస్తాయి. |
లోకల్ వేరియబుల్ యొక్క నిర్వచనం
ఒక స్థానిక వేరియబుల్ ఎల్లప్పుడూ ఫంక్షన్ బ్లాక్ లోపల ప్రకటించబడుతుంది. సి లో, కోడ్ బ్లాక్ ప్రారంభంలో స్థానిక వేరియబుల్ ప్రకటించబడుతుంది. C ++ లో, వాటిని వాడటానికి ముందు కోడ్ బ్లాక్లో ఎక్కడైనా ప్రకటించవచ్చు. లోకల్ వేరియబుల్స్ డిక్లేర్ చేయబడిన ఫంక్షన్ లోపల వ్రాసిన స్టేట్మెంట్ల ద్వారా మాత్రమే స్థానిక వేరియబుల్స్ యాక్సెస్ చేయబడతాయి. ఒకే ప్రోగ్రామ్ యొక్క ఇతర ఫంక్షన్ ద్వారా వాటిని యాక్సెస్ చేయలేరనే కోణంలో అవి సురక్షితంగా ఉంటాయి.
ఫంక్షన్ యొక్క బ్లాక్ అమలులో ఉన్నంత వరకు స్థానిక వేరియబుల్ ఉనికిలో ఉంటుంది మరియు తద్వారా అమలు బ్లాక్ నుండి నిష్క్రమించిన తర్వాత నాశనం అవుతుంది. అమలు వారు ప్రకటించిన బ్లాక్ను విడిచిపెట్టిన వెంటనే స్థానిక వేరియబుల్స్ వాటి కంటెంట్ను కోల్పోతాయి.
దాని వెనుక ఉన్న కారణం ఏమిటంటే, స్థానిక వేరియబుల్స్ వాటి ప్రత్యేక నిల్వ పేర్కొనబడకపోతే స్టాక్లో నిల్వ చేయబడతాయి. స్టాక్ ప్రకృతిలో డైనమిక్, మరియు మెమరీ స్థానంలోని మార్పు ఒక ఫంక్షన్ యొక్క బ్లాక్ ఉన్న వెంటనే స్థానిక వేరియబుల్ వాటి విలువను కలిగి ఉండకపోవటానికి దారితీస్తుంది.
గమనిక:
అయితే, ‘స్టాటిక్’ మాడిఫైయర్ ఉపయోగించి స్థానిక వేరియబుల్ విలువను నిలుపుకునే మార్గం ఉంది.
గ్లోబల్ వేరియబుల్ యొక్క నిర్వచనం
ఒక గ్లోబల్ వేరియబుల్ ప్రోగ్రామ్లో ఉన్న అన్ని ఫంక్షన్ల వెలుపల ప్రకటించబడుతుంది. స్థానిక వేరియబుల్స్ మాదిరిగా కాకుండా, గ్లోబల్ వేరియబుల్ ను ప్రోగ్రామ్లో ఉన్న ఏదైనా ఫంక్షన్ ద్వారా యాక్సెస్ చేయవచ్చు. గ్లోబల్ వేరియబుల్స్ చాలా నమ్మదగినవి కావు ఎందుకంటే ప్రోగ్రామ్లో ఉన్న ఏదైనా ఫంక్షన్ ద్వారా వాటి విలువను మార్చవచ్చు.
మొత్తం ప్రోగ్రామ్ పూర్తిగా అమలు అయ్యే వరకు అవి ఉనికిలో ఉంటాయి. ప్రోగ్రామ్ అమలులో ఉన్నంత వరకు గ్లోబల్ వేరియబుల్స్ వాటి విలువలను నిలుపుకుంటాయి. కారణం అవి కంపైలర్ నిర్ణయించిన మెమరీ యొక్క స్థిర ప్రాంతంలో నిల్వ చేయబడతాయి.
బహుళ ఫంక్షన్లు ఒకే డేటాను యాక్సెస్ చేస్తున్న పరిస్థితులలో గ్లోబల్ వేరియబుల్ సహాయపడుతుంది. గ్లోబల్ వేరియబుల్ యొక్క విలువకు అవాంఛిత మార్పులు ఉండవచ్చు కాబట్టి పెద్ద సంఖ్యలో గ్లోబల్ వేరియబుల్స్ ఉపయోగించడం సమస్యాత్మకం కావచ్చు.
- లోకల్ వేరియబుల్స్ ను ‘లోకల్’ అని పిలుస్తారు ఎందుకంటే అవి ఒక ఫంక్షన్ లో వ్రాసిన స్టేట్మెంట్లకు మాత్రమే తెలిసినవి, అవి డిక్లేర్ చేయబడతాయి మరియు ఆ ఫంక్షన్ బ్లాక్ వెలుపల ఉన్న ఇతర ఫంక్షన్లకు తెలియదు. గ్లోబల్ వేరియబుల్ విషయంలో, అవి ప్రోగ్రామ్లో ఉన్న ప్రతి ఫంక్షన్కు తెలుసు; అందువల్ల, వాటిని ‘గ్లోబల్’ అంటారు.
- ప్రోగ్రామ్ అమలు దశలో ఉండే వరకు గ్లోబల్ వేరియబుల్స్ వాటి విలువను నిలుపుకుంటాయి, ఎందుకంటే అవి కంపైలర్ నిర్ణయించిన స్థిర ప్రదేశంలో నిల్వ చేయబడతాయి. స్థానిక వేరియబుల్స్ స్టాక్లో నిల్వ చేయబడతాయి; అందువల్ల, ‘స్టాక్’ డైనమిక్ స్వభావం ఉన్నందున అవి వాటి విలువను నిలుపుకోవు, కాని కంపైలర్ ‘స్టాటిక్’ మాడిఫైయర్ను ఉపయోగించడం ద్వారా వాటి విలువను నిలుపుకునేలా నిర్దేశించవచ్చు.
- గ్లోబల్ మరియు లోకల్ వేరియబుల్ ఒకే పేరుతో ప్రకటించబడితే, లోకల్ వేరియబుల్ డిక్లేర్ చేయబడిన కోడ్ బ్లాక్ యొక్క అన్ని స్టేట్మెంట్స్ లోకల్ వేరియబుల్ ను మాత్రమే సూచిస్తాయి మరియు గ్లోబల్ వేరియబుల్ కు ఎటువంటి ప్రభావం చూపదు.
- ప్రోగ్రామ్ యొక్క నియంత్రణ స్థానిక వేరియబుల్ డిక్లేర్ చేయబడిన బ్లాక్ నుండి నిష్క్రమించినప్పుడు స్థానిక వేరియబుల్ నాశనం అవుతుంది. ఏదేమైనా, మొత్తం ప్రోగ్రామ్ ముగిసినప్పుడు గ్లోబల్ వేరియబుల్ నాశనం అవుతుంది.
ప్రయోజనాలు
స్థానిక వేరియబుల్
- స్థానిక వేరియబుల్ యొక్క ప్రధాన ప్రయోజనం ఏమిటంటే డేటా యొక్క ప్రమాదవశాత్తు మార్పు లేదు. వేరియబుల్ ఒక బ్లాక్ లోపల ప్రకటించబడింది, మరియు ఈ కోడ్ బ్లాక్ వేరియబుల్ ను ఉపయోగిస్తుంది మరియు అవాంఛనీయ దుష్ప్రభావాలను నివారిస్తుంది.
- లోకల్ వేరియబుల్ పరిమిత కాలానికి మెమరీని వినియోగిస్తుంది, వేరియబుల్ ఉన్న బ్లాక్ ఎగ్జిక్యూట్ అయినప్పుడు మాత్రమే.
గ్లోబల్ వేరియబుల్
- మీరు ఒకే డేటాను మానిప్యులేట్ చేసే ప్రోగ్రామ్లోని అనేక ఫంక్షన్లతో వ్యవహరించేటప్పుడు గ్లోబల్ వేరియబుల్స్ చాలా ఉపయోగపడతాయి.
- గ్లోబల్ వేరియబుల్ను అమలు చేయడం ద్వారా మొత్తం ప్రోగ్రామ్లో వర్తించాల్సిన మార్పులు సులభం.
- మేము ఎక్కడి నుండైనా లేదా ప్రోగ్రామ్ యొక్క ఏదైనా యాదృచ్ఛిక ఫంక్షన్ ద్వారా యాక్సెస్ చేయవచ్చు.
ప్రతికూలతలు
స్థానిక వేరియబుల్
- స్థానిక వేరియబుల్ యొక్క పరిధి పరిమితం చేయబడింది.
- డేటా భాగస్వామ్యాన్ని నిషేధిస్తుంది.
- వారు కాల్స్ మధ్య డేటాను నిలుపుకోలేరు ఎందుకంటే స్థానిక ఎంట్రీలు ప్రతి ఎంట్రీతో ఉత్పత్తి చేయబడతాయి మరియు తొలగించబడతాయి మరియు బ్లాక్ నుండి నిష్క్రమిస్తాయి. అయినప్పటికీ, విలువలను నిలుపుకోవటానికి స్టాటిక్ మాడిఫైయర్ ఉపయోగించవచ్చు.
గ్లోబల్ వేరియబుల్
- పెద్ద సంఖ్యలో గ్లోబల్ వేరియబుల్స్ వాడటం వల్ల ప్రోగ్రామ్ లోపాలు ఏర్పడతాయి.
- ప్రోగ్రామ్ అంతటా వ్యాపించిన గ్లోబల్ వేరియబుల్స్ కారణంగా మార్పులు ప్రమాదవశాత్తు సంభవించడం దీనికి కారణమయ్యే ప్రధాన సమస్య.
- ఇది కోడ్ రీఫ్యాక్టరింగ్ నిర్వహించాల్సిన అవసరాన్ని కూడా పెంచుతుంది, ఇది చాలా విస్తృతమైన ప్రక్రియ, ఇక్కడ మొత్తం ప్రోగ్రామ్ కోడ్ పునర్నిర్మించబడింది.
ముగింపు:
ప్రోగ్రామ్ రాసేటప్పుడు స్థానిక మరియు గ్లోబల్ వేరియబుల్స్ రెండూ అవసరం మరియు సమానంగా అవసరం. ఏదేమైనా, పెద్ద సంఖ్యలో గ్లోబల్ వేరియబుల్స్ ప్రకటించడం భారీ ప్రోగ్రామ్లో సమస్యాత్మకంగా ఉంటుంది, ఎందుకంటే ఇది గ్లోబల్ వేరియబుల్లో అవాంఛిత మార్పులకు కారణం కావచ్చు; మరియు ప్రోగ్రామ్ యొక్క ఏ భాగం ఆ మార్పు చేసిందో గుర్తించడం కష్టం అవుతుంది. అందువల్ల, అనవసరమైన గ్లోబల్ వేరియబుల్స్ ప్రకటించకుండా ఉండాలి.