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.