సి ప్రోగ్రామింగ్‌లో స్టాటిక్

Static C Programming



ఈ ట్యుటోరియల్‌లో, స్టాటిక్ కీవర్డ్‌ని వేరియబుల్స్ మరియు ఫంక్షన్లలో వర్తింపజేయడం ద్వారా మేము దానిని వివరిస్తాము. స్టాటిక్ అనేది సి ప్రోగ్రామింగ్‌లో ఉపయోగించే ఒక కీవర్డ్, మరియు దీనిని కింది వాక్యనిర్మాణాన్ని ఉపయోగించి అన్వయించవచ్చు:

స్టాటిక్ {డేటా రకం} {వేరియబుల్ పేరు}







స్టాటిక్ స్థానిక వేరియబుల్స్

ఫంక్షన్‌లో వేరియబుల్ స్టాటిక్‌గా ఉన్నప్పుడు, వేరియబుల్ ఫంక్షన్ కాల్‌ల మధ్య దాని విలువను కాపాడుతుంది.



// ఉదాహరణ 1..సి

#చేర్చండి

intసరదా 1()
{

intలెక్క=0;
లెక్క++;
తిరిగిలెక్క;
}

intసరదా 2()
{
స్టాటిక్ intలెక్క=0;
లెక్క++;
తిరిగిలెక్క;
}

intప్రధాన()
{
printf ('ఫన్ 1 మొదటి కాల్ రిటర్న్స్: %d n',సరదా 1());
printf ('ఫన్ 1 2 వ కాల్ రిటర్న్స్: %d n n',సరదా 1());

printf ('ఫన్ 2 1 వ కాల్ రిటర్న్స్: %d n',సరదా 2());
printf ('ఫన్ 2 2 వ కాల్ రిటర్న్స్: %d n',సరదా 2());

తిరిగి 0;
}


ఉదాహరణ 1.c లో, మాకు రెండు విధులు ఉన్నాయి: సరదా 1 () మరియు సరదా 2 () . లో సరదా 1 () , మేము ఒక వేరియబుల్‌ని (కౌంట్) డిక్లేర్ చేసి, దానిని 0. కి ప్రారంభిస్తాము, అప్పుడు, కౌంట్ వేరియబుల్‌ను పెంచి, ఫలిత విలువను తిరిగి ఇస్తాము. ఉపయోగించి ప్రధాన () , మేము పిలుస్తాము సరదా 1 () రెండుసార్లు, మరియు ప్రతిసారి, 1 విలువ తిరిగి ఇవ్వబడుతుంది ఎందుకంటే కాల్ చేసినప్పుడు కౌంట్ వేరియబుల్ క్లియర్ చేయబడుతుంది సరదా 1 () పూర్తయింది. లో సరదా 2 () మేము కౌంట్ వేరియబుల్‌ను స్టాటిక్ వేరియబుల్‌గా ప్రకటించాము. అందువలన, దాని విలువ భద్రపరచబడింది. ఉపయోగించి ప్రధాన () , మేము పిలుస్తాము సరదా 2 () రెండుసార్లు: మొదటిసారి, 1 విలువ తిరిగి ఇవ్వబడింది, మరియు రెండవసారి, 2 విలువ తిరిగి ఇవ్వబడుతుంది.



స్టాటిక్ గ్లోబల్ వేరియబుల్స్

ఒక స్టాటిక్ గ్లోబల్ వేరియబుల్ ఇతర గ్లోబల్ వేరియబుల్స్ మాదిరిగానే ప్రవర్తిస్తుంది, కానీ అది మరొక సి ప్రోగ్రామ్ నుండి యాక్సెస్ చేయబడదు.





స్థిరమైన విధులు

C లో, విధులు అప్రమేయంగా ప్రపంచవ్యాప్తంగా ఉంటాయి. అయితే, మేము స్టాటిక్ ఫంక్షన్‌ని ప్రకటిస్తే, ఫంక్షన్ స్థానికంగా ఉంటుంది మరియు మరొక సి ప్రోగ్రామ్ నుండి యాక్సెస్ చేయబడదు.

స్టాటిక్ వేరియబుల్స్ ప్రారంభించడం

స్టాటిక్ వేరియబుల్ స్పష్టంగా ప్రారంభించబడకపోతే, అది 0 గా ప్రారంభించబడుతుంది.



// ఉదాహరణ 2.సి

#చేర్చండి

intప్రధాన()
{
స్టాటిక్ inti;

printf ('I యొక్క విలువ: %d n',i);

తిరిగి 0;
}


Example2.c లో, మేము ప్రారంభించని స్టాటిక్ వేరియబుల్ i ని ప్రకటించాము. అయితే, వేరియబుల్ స్థిరంగా ఉన్నందున, అది స్వయంచాలకంగా 0 కి ప్రారంభించబడుతుంది.

స్టాటిక్ వేరియబుల్ ఒక స్థిరమైన సాహిత్యంతో తప్పనిసరిగా ప్రారంభించబడాలని గమనించడం ముఖ్యం; స్టాటిక్ వేరియబుల్‌ను ప్రారంభించడానికి మేము ఫంక్షన్ రిటర్న్ విలువను ఉపయోగించలేము.

// ఉదాహరణ 3. సి

#చేర్చండి

intసరదా 1()
{
తిరిగి 5;
}

intప్రధాన()
{
స్టాటిక్ inti=సరదా 1();
printf ('I యొక్క విలువ: %d n',i);
తిరిగి 0;
}


Example3.c లో, మేము రిటర్న్ విలువను ఉపయోగించి స్టాటిక్ వేరియబుల్‌ను ప్రారంభించడానికి ప్రయత్నిస్తాము సరదా 1 () . అయితే, మీరు చూడగలిగినట్లుగా, కోడ్ కంపైల్ చేయబడినప్పుడు లోపం తిరిగి వస్తుంది.

సారాంశం

స్టాటిక్ వేరియబుల్ యొక్క జీవితకాలం మరియు ప్రోగ్రామ్ యొక్క జీవితకాలం సమానంగా ఉంటాయి.

స్టాటిక్ వేరియబుల్ ప్రారంభించబడకపోతే, అది 0 డిఫాల్ట్ విలువను తీసుకుంటుంది.

గ్లోబల్ స్టాటిక్ వేరియబుల్ లేదా స్టాటిక్ ఫంక్షన్ నిర్వచించబడిన ప్రోగ్రామ్ కాకుండా వేరే ప్రోగ్రామ్ నుండి యాక్సెస్ చేయబడదు.