గ్లోబల్ ఫంక్షన్
గ్లోబల్ ఫంక్షన్ అనేది ప్రధాన() ఫంక్షన్కు ముందు C ఫైల్లో నిర్వచించబడిన ఫంక్షన్. మెయిన్() ఫంక్షన్ కూడా గ్లోబల్ ఫంక్షన్ అయితే ఈ ఆర్టికల్లో మెయిన్() ఫంక్షన్ ఫోకస్ కాదు. భాష సిలో, ప్రోగ్రామర్-నిర్వచించిన ఫంక్షన్లు సాధారణంగా గ్లోబల్ ఫంక్షన్లు మరియు వాటిని ఫంక్షన్లుగా సూచిస్తారు.
గ్లోబల్ ఫంక్షన్ని దాని ఫైల్లోని ఏ స్కోప్లోనైనా పిలుస్తారు. గ్లోబల్ ఫంక్షన్ని వేరే ఫైల్లో చూడాలంటే, దాని ప్రోటోటైప్ని వేరే ఫైల్లో డిక్లేర్ చేయాలి (క్రింద చూడండి.) ఒక ఫైల్లో నిర్వచించిన ఫంక్షన్ని వేరే ఫైల్లో చూడకుండా నిరోధించడానికి, డెఫినిషన్కు ముందు రిజర్వ్ చేయబడిన పదం, స్థిరమైన. దానితో, స్టాటిక్ ఫంక్షన్ దాని స్వంత ఫైల్లో మాత్రమే గ్లోబల్ ఫంక్షన్ అవుతుంది మరియు మరొక ఫైల్లో కనిపించదు.
కాబట్టి, otherFile.cలో నిర్వచించబడిన గ్లోబల్ ఫంక్షన్ని otherFile.cలో ఎక్కడైనా చూడవచ్చు. ఇది mainFile.cలో కనిపించాలంటే, దాని నమూనా mainFile.cలో ప్రకటించబడాలి (క్రింద చూడండి.) otherFile.cలో దాని నిర్వచనం “స్టాటిక్”తో ముందు ఉండకూడదు. ఇది mainFile.cలో కనిపించకుండా నిరోధించడానికి, otherFile.cలో దాని నిర్వచనాన్ని స్టాటిక్ అనే పదంతో ముందు ఉంచడం ద్వారా స్టాటిక్ రిమూవ్డ్ కామాగా మార్చాలి.
ఈ కథనం కంప్యూటర్ భాషలో స్టాటిక్ ఫంక్షన్ను వివరిస్తుంది, C అనేది ఫంక్షన్ ప్రోటోటైప్ యొక్క అర్థంతో మొదలవుతుంది మరియు రెండు లేదా అంతకంటే ఎక్కువ ఫైల్ల C ప్రోగ్రామ్లో దాని ఉపయోగం.
ఫైల్ల సంకలనం, mainFile.c మరియు otherFile.c, కింది బాష్ టెర్మినల్ కమాండ్తో చేయవచ్చు:
gcc మెయిన్ ఫైల్. సి ఇతర ఫైల్. సి - ఆ ఉష్ణోగ్రత. exe
temp.exe అనేది ఒకే ఎగ్జిక్యూటింగ్ ఫైల్ పేరు.
వ్యాసం కంటెంట్
సి ఫంక్షన్ ప్రోటోటైప్
గ్లోబల్ ఫంక్షన్ నిర్వచనాన్ని పరిగణించండి:
చార్ * fn1 ( చార్ * స్త్రీ ) {తిరిగి స్త్రీ ;
}
ఈ ఫంక్షన్ యొక్క నమూనా:
చార్ * fn1 ( చార్ * స్త్రీ ) ;ఇది సెమికోలన్తో ముగిసే ఫంక్షన్ సిగ్నేచర్.
ఇప్పుడు, otherFile.c యొక్క కంటెంట్ ఇలా ఉండనివ్వండి:
చార్ * fn1 ( చార్ * స్త్రీ ) {తిరిగి స్త్రీ ;
}
ఫైల్, otherFile.c గ్లోబల్ ఫంక్షన్, fn1() యొక్క నిర్వచనాన్ని మాత్రమే కలిగి ఉందని భావించండి. ఇప్పుడు ఫైల్ యొక్క కంటెంట్, mainFile.c, ఇలా ఉండనివ్వండి:
#చార్ * fn1 ( చార్ * స్త్రీ ) ;
int ప్రధాన ( )
{
చార్ * str = fn1 ( 'చూసిన' ) ;
printf ( '%s \n ' , str ) ;
తిరిగి 0 ;
}
ఇది
ఈ మెయిన్ ఫైల్ డిఫాల్ట్ మెయిన్() ఫంక్షన్ కాకుండా మరే ఇతర గ్లోబల్ ఫంక్షన్ యొక్క నిర్వచనాన్ని కలిగి ఉండదు. ప్రధాన ఫంక్షన్లో, మొదటి స్టేట్మెంట్ ఇతర ఫైల్లో నిర్వచించబడిన ఫంక్షన్ fn1() అని పిలుస్తుంది. ఈ ఫైల్, mainFile.cలో fn1() యొక్క ప్రోటోటైప్ ప్రకటించబడకపోతే ఈ కాల్ ప్రభావవంతంగా ఉండదు.
రీడర్ పైన పేర్కొన్న రెండు ఫైల్లను కోడ్ చేసినట్లయితే, అతను ఈ క్రింది ఆదేశంతో ప్రోగ్రామ్ను ఒక ఎక్జిక్యూటబుల్ ఫైల్గా కంపైల్ చేయవచ్చు:
gcc మెయిన్ ఫైల్. సి ఇతర ఫైల్. సి - ఆ ఉష్ణోగ్రత. exeపంక్తి చివరిలో Enter కీని నొక్కడం. అవుట్పుట్ 'చూసింది' అని ఉండాలి.
గ్లోబల్ ఫంక్షన్
mainFile.c ఫైల్ను ఈ క్రింది విధంగా సవరించవచ్చు:
#చార్ * fn1 ( చార్ * స్త్రీ ) ;
చార్ * fn ( చార్ * సెయింట్ ) {
తిరిగి సెయింట్ ;
}
int ప్రధాన ( )
{
చార్ * str1 = fn1 ( 'చూసిన' ) ;
printf ( '%s \n ' , str1 ) ;
చార్ * str2 = fn ( 'గ్లోబల్ దాని ఫైల్లో కనిపించింది.' ) ;
printf ( '%s \n ' , str2 ) ;
తిరిగి 0 ;
}
ఇప్పుడు, ఫైల్లో రెండు గ్లోబల్ ఫంక్షన్లు ఉన్నాయి, mainFile.c. ఫంక్షన్ల పేర్లు fn() మరియు main(). dfn() అనేది గ్లోబల్ ఫంక్షన్. ఇది కాల్ ద్వారా మెయిన్() ఫంక్షన్ లోకల్ స్కోప్లో కనిపించింది. భాష Cలో, fn() వంటి గ్లోబల్ స్కోప్లోని గ్లోబల్ ఫంక్షన్ని కేవలం ఫంక్షన్గా సూచిస్తారు. అలాగే, ఫైల్లోని గ్లోబల్ ఫంక్షన్, fn1(), otherFile.c కేవలం ఒక ఫంక్షన్గా సూచించబడుతుంది.
రెండు ఫైల్లు temp.exeకి తిరిగి కంపైల్ చేయబడితే, అవుట్అవుట్ ఇలా ఉంటుంది:
చూసిందిగ్లోబల్ దాని ఫైల్లో కనిపిస్తుంది.
గమనిక: fn() కోసం ఫంక్షన్ డెఫినిషన్ ఇతర ఫైల్, otherFile.cలో కూడా కనిపించేలా చేయవచ్చు. దాన్ని సాధించడానికి ఇతర ఫైల్.సిలో దాని ప్రోటోటైప్ డిక్లరేషన్ను ఈ క్రింది విధంగా కలిగి ఉండండి:
చార్ * fn ( చార్ * సెయింట్ ) ;సెమికోలన్తో ముగుస్తుంది. ఈ కార్యాచరణ, పాఠకులకు వ్యాయామంగా మిగిలిపోయింది.
స్టాటిక్ ఫంక్షన్ సరైనది
పై చర్చ నుండి, ఒక ఫంక్షన్ దాని ఫైల్లో ఏదైనా స్కోప్లో (ఎక్కడైనా) చూడవచ్చు. దాని ప్రోటోటైప్ అక్కడ ప్రకటించబడితే, అదే ప్రోగ్రామ్ కోసం, ఇది వేరే ఫైల్లో కూడా చూడవచ్చు. ఫైల్ యొక్క నిర్వచనం వేరే ఫైల్లో కనిపించకుండా నిరోధించడానికి, రిజర్వ్ చేయబడిన పదం, స్టాటిక్తో డెఫినిషన్ను స్టాటిక్గా మార్చండి. దాని ప్రోటోటైప్ వేరే ఫైల్లో డిక్లేర్ చేసినా, అది వేరే ఫైల్లో కనిపించదు. ప్రోగ్రామ్ ఫైల్లు కూడా కంపైల్ చేయబడవు. దీన్ని వివరించడానికి, ఫైల్ యొక్క కంటెంట్, otherFile.c ఇలా ఉండనివ్వండి:
స్థిరమైన చార్ * fn1 ( చార్ * స్త్రీ ) {తిరిగి స్త్రీ ;
}
ఇది ఫైల్లోని ఇతర ఫైల్.సిలో మునుపటిలాగానే ఉంటుంది, కానీ మునుపటి రిజర్వ్ చేసిన పదం స్టాటిక్తో ఉంటుంది. mainFile.c ఫైల్ యొక్క కంటెంట్ అలాగే ఉంటుంది. ప్రోగ్రామ్ ఫైల్లను కమాండ్తో కంపైల్ చేయడానికి ప్రయత్నించినట్లయితే,
gcc మెయిన్ ఫైల్. సి ఇతర ఫైల్. సి - ఆ ఉష్ణోగ్రత. exeకంపైలర్ దోష సందేశాన్ని జారీ చేస్తుంది, అంటే ప్రోగ్రామ్ కంపైల్ చేయలేదు. వేర్వేరు ఫైల్లోని ప్రోటోటైప్ డిక్లరేషన్, స్టాటిక్తో ముందు ఉన్నప్పటికీ, ప్రోగ్రామ్ ఫైల్లు ఇప్పటికీ కంపైల్ చేయబడవు.
ముగింపు
C భాషలో ఒక ఫంక్షన్ నిర్వచనం, ఒక గ్లోబల్ ఫంక్షన్. ఈ ఫంక్షన్ని దాని ఫైల్లోని ఏదైనా స్కోప్లో (చూడవచ్చు) అని పిలుస్తారు. ప్రధాన ఫైల్ వంటి వేరొక ఫైల్లో ఈ ఫంక్షన్ కనిపించాలంటే, దాని ప్రోటోటైప్ డిక్లరేషన్ ఆ వేరే ఫైల్లో టైప్ చేయాలి. విభిన్న ఫైల్లో ఈ ఫంక్షన్ కనిపించకుండా నిరోధించడానికి రిజర్వ్ చేయబడిన పదం, స్టాటిక్తో ముందుగా దాని నిర్వచనాన్ని స్టాటిక్గా చేయండి.