C de Global Ve Local Kavramları

Bu başlık kilitlidir. Yeni mesajlar gönderilemez veya mevcut mesajlar düzenlenemez.
LmandrakeL
02-03-2004, 10:03   |  #1  
OP Üye
Teşekkür Sayısı: 0
78 mesaj
Kayıt Tarihi:Kayıt: Şub 2004

C de Global ve Local kavramlarının önemli bir yeri vardır ... Genellikle döngülerde saçma değerlerin çıkması ve Bloklarda yanlış değerlin çıkması Bu tanımlamaların Doğru yapılamamasından kaynaklanmaktadır.

Global Kavramı değişkene tanımlandığı yerden sonra hemen her blokta kullanılacağını ifade eder ... Eğer Blok kavramına yabancı iseniz ;

  Blok { }  işaretleri arasında kalan kısımdır.Bu bir if bloğu olabilir , Döngü Bloğu olabilir, Main bloğu olabilir.Yani blok kavramı bir kapalı kutu oluşturur ... Ve sadece Blok arasında kalan değişkenler veya nesneler birbirini tanıyabilir.

Bu yüzden Dışarıdan Tanımlanan bir değişkenin kullanılabilmesi için Global Olarak Tanımlanması demektir.Yani Global Demek Blokların dışında olan ancak hiçbir bloğun içinde tanımlanmayan değişken(KahkahaBiraz Karışık oldu galibaCool) yani blokların dışında tanımlanan değişken demektir Ve her bloktan kullanılabilir...

Local (yerel) değişken ise sadece blokların içinde kullanılan ve dışarıdan erişilemeyen değişken demektir...


Örnek ;

int x=10;

  void  goster()
{
  printf("%d\n",x);
}

burada x değişkeni goster fonksiyonu içinden kullanılabiliyor.Çünkü Global ;

Örnek ;

int goster()
  {
   int y=50;
   printf("%d",y);
  }

  int yeni()
  {
   printf("%d",y);
  }

burada y değişkeni başka bir blokta tanımlanmış olduğu için sadece o blok içerisinde kullanılabilir.Yani goster() fonksiyonu dışında hiçbir yerde kullanılamaz yeni() isimli fonksiyon bunu kullanmaya çalıştığı için derleyici hata verecektir. Çünkü y değişkeni local olarak goster() fonksiyonu içerisinde tanımlanmıştır... Bu yüzden y değişkeninin her iki fonksiyon tarafından kullanılamabilmesi için her iki bloğun dışında  Global olarak tanımlanması gerekir...


Bu yüzden global ve local kavramları çok dikkat edilmesi gereken bir programalama kuralıdır...
Global ve Local tanımlamalarında diğer bir önemli husus ise Global olarak tanımlanmış değişkenlere ilk değer verme ile değişken varsayılan olarak Sıfır(0) değerini alır... Eğer Local bir değişken tanımlarsanız ve buna bir ilk değer vermezseniz Derleyici varsayılan olarak kafasına göre bir değer verir bu 0 olur 1000 olur 983294819324 olur kafasına göre takılır... Bu yüzden local olarak tanımladığınız değişkenlere   mutlaka bir ilk değer verin