Arama Paneli

Merhabalar, bu makalemde sizlere statik değişkenleri anlatacağım.Statik değişkenler, tanımlandıkları fonksiyon içerisinde değerlerini kaybetmeyecek şekilde tasarlanmışlardır.Kullanım bakımdan oldukça kullanışlı ve bazen işimize oldukça katkı-kolaylık sağlamaktadır.Hemen statik değişkenlerin özelliklerinden, niteliklerinden bahsedelim.

 

 

  • Derlenme anında büyüklükleri sabit kalır.
  • Bir programda tanımlı her değişken, geçerli olduğu (scope) program ya da alt program işlediği sürece bellekte kendisine ayrılan yeri korur.
  • Var bölümünde tanımlanırlar.
  • Sınıf değişkenine erişim, ait olduğu sınıfın verdiği izinle sınırlıdır.

 

Örnek : 1'den 2'ye kadar olan sayıları statik değişkende artarak, normal değişkende azaltarak ekrana yazdırınız.

 

void siralaNormal(void);
void siralaStatik(void);


int main(int argc, char *argv[]) {
	
	printf ("--------------------------- \n");
	printf ("Normal Degisken Ornegi \n");
	printf ("--------------------------- \n");
	
	siralaNormal();
	siralaNormal();
	
	printf ("--------------------------- \n");
	printf ("Statik Degisken Ornegi \n");
	printf ("--------------------------- \n");
	
	siralaStatik();
	siralaStatik();
	
	return 0;
}
void siralaStatik(void)
{
	//x değişkeni statik olarak tanımlandığı için
	//özelliklerde de belirttiğimiz gibi değerini kaybetmez.
	static int x = 1;
	printf ("%d\n", x);
	x = x + 1;
}
void siralaNormal(void)
{
	//bu fonksiyon çağrıldığında x değeri sıfırlanır.
	int x = 2;
	printf ("%d\n", x);
	x = x - 1;
}

 

Yukarıdaki örnekte döngüler konusuna ilişkin örnek verseydim daha açıklayıcı olacaktı ancak oraya daha gelmediğimiz için şimdilik böyle bir örnek vermek zorunda kaldık.siralaNormal fonksiyonunun her defasında 0 değerini aldığını çok açık bir şekilde görmekteyiz, ancak bu durum siralaStatik fonksiyonu için geçerli değildir; çünkü x değişkeni statik olarak tanımlanmıştır.Bu şekilde örnekler çoğaltılabilir, sonraki makalemizde görüşmek dileği ile.

C Dersleri - Statik Değişkenler

Yorum Paneli
Adınız (*)
 
Mail Adresiniz (*)
 
Mesajınız (*)
Güvenlik Kontrolü :