C Programlamada Statik

Static C Programming



Bu öğreticide, static anahtar sözcüğünü değişkenler ve işlevler içinde uygulayarak açıklayacağız. Statik, C programlamada kullanılan bir anahtar kelimedir ve aşağıdaki sözdizimi kullanılarak uygulanabilir:

statik {veri türü} {değişken adı}







Statik yerel değişkenler

Bir fonksiyondaki bir değişken statik olduğunda, değişken, fonksiyon çağrıları arasında değerini korur.



//Örnek1.c

#Dahil etmek

inteğlence1()
{

intsaymak=0;
saymak++;
dönüşsaymak;
}

inteğlence2()
{
statik intsaymak=0;
saymak++;
dönüşsaymak;
}

intana()
{
baskı ('fun1 1. çağrı geri dönüyor : %d ',eğlence1());
baskı ('fun1 2. çağrı döndürür: %d ',eğlence1());

baskı ('fun2 1. çağrı geri dönüyor : %d ',eğlence2());
baskı ('fun2 2. çağrı geri dönüyor : %d ',eğlence2());

dönüş 0;
}


Örnek 1.c'de iki fonksiyonumuz var: eğlence1() ve eğlence2() . İçinde eğlence1() , bir değişken (count) bildiririz ve onu 0 olarak başlatırız. Ardından, count değişkenini artırıp elde edilen değeri döndürürüz. kullanma ana() , Biz ararız eğlence1() çağrıldığında sayı değişkeni temizlendiğinden, her seferinde 1 değeri döndürülür. eğlence1() tamamlandı. İçinde eğlence2() sayma değişkenini statik bir değişken olarak tanımladık. Bu nedenle değeri korunur. kullanma ana() , Biz ararız eğlence2() iki kez: ilkinde 1 değeri döndürülür ve ikincisinde 2 değeri döndürülür.



Statik global değişkenler

Statik bir global değişken, diğer global değişkenlerle aynı şekilde davranır, ancak başka bir C programından erişilemez.





Statik fonksiyonlar

C'de fonksiyonlar varsayılan olarak globaldir. Ancak, statik bir işlev bildirirsek, işlev yereldir ve başka bir C programından erişilemez.

Statik değişkenlerin başlatılması

Statik bir değişken açıkça başlatılmazsa, 0 olarak başlatılır.



//Örnek2.c

#Dahil etmek

intana()
{
statik intben;

baskı ('in değeri : %d ',ben);

dönüş 0;
}


Örnek2.c'de, başlatılmamış statik bir i değişkeni bildirdik. Ancak değişken statik olduğundan, otomatik olarak 0 olarak başlatılır.

Statik bir değişkenin sabit bir hazır bilgi ile başlatılması gerektiğine dikkat etmek önemlidir; statik bir değişkeni başlatmak için bir fonksiyonun dönüş değerini kullanamayız.

//Örnek3.c

#Dahil etmek

inteğlence1()
{
dönüş 5;
}

intana()
{
statik intben=eğlence1();
baskı ('in değeri : %d ',ben);
dönüş 0;
}


Örnek3.c'de, dönüş değerini kullanarak statik bir değişken başlatmaya çalışıyoruz. eğlence1() . Ancak gördüğünüz gibi kod derlendiğinde bir hata döndürülüyor.

Özet

Statik bir değişkenin ömrü ile programın ömrü eşittir.

Statik bir değişken başlatılmazsa, varsayılan olarak 0 değerini alacaktır.

Ne global bir statik değişkene ne de bir statik fonksiyona, tanımlandığı programdan başka bir programdan erişilebilir.