C Depolama Sınıfı

Bu eğitimde, yerel ve global değişkenlerin kapsamı ve ömrü hakkında bilgi edineceksiniz. Ayrıca, statik ve kayıt değişkenleri hakkında bilgi edineceksiniz.

C programlamasındaki her değişkenin iki özelliği vardır: tür ve depolama sınıfı.

Tür, bir değişkenin veri türünü ifade eder. Ve depolama sınıfı, bir değişkenin kapsamını, görünürlüğünü ve ömrünü belirler.

4 tür depolama sınıfı vardır:

  1. otomatik
  2. dış
  3. statik
  4. Kayıt ol

Yerel değişken

Bir blok içinde bildirilen değişkenler otomatik veya yerel değişkenlerdir. Yerel değişkenler yalnızca bildirildiği bloğun içinde bulunur.

Bir örnek alalım.

 #include int main(void) ( for (int i = 0; i < 5; ++i) ( printf("C programming"); ) // Error: i is not declared at this point printf("%d", i); return 0; )

Yukarıdaki programı çalıştırdığınızda, bildirilmemiş bir hata tanımlayıcısı i alacaksınız. Çünkü i fordöngü bloğu içinde bildirilmiştir . Bloğun dışında, ilan edilmemiş.

Başka bir örnek alalım.

  int main() ( int n1; // n1 is a local variable to main() ) void func() ( int n2; // n2 is a local variable to func() ) 

Yukarıdaki örnekte, n1 yereldir main()ve n2 yereldir func().

Bu, n1 değişkenine func()yalnızca içinde bulunduğu için erişemeyeceğiniz anlamına gelir main(). Benzer şekilde n2 değişkenine de erişemezsiniz main()çünkü bu değişken sadece içinde bulunmaktadır func().

Küresel değişken

Tüm işlevlerin dışında bildirilen değişkenler, harici veya global değişkenler olarak bilinir. Programın içindeki herhangi bir işlevden erişilebilirler.

Örnek 1: Global Değişken

 #include void display(); int n = 5; // global variable int main() ( ++n; display(); return 0; ) void display() ( ++n; printf("n = %d", n); ) 

Çıktı

 n = 7

Diyelim ki, global bir değişkenin içinde bildirildi file1. Bu değişkeni farklı bir dosyada kullanmaya çalışırsanız file2, derleyici şikayet edecektir. Bu sorunu çözmek için, harici değişkenin başka bir dosyada bildirildiğini belirtmek için anahtar sözcük externkullanılır file2.

Değişkeni Kaydet

registerAnahtar kelime kayıt değişkenleri bildirmek için kullanılır. Kayıt değişkenlerinin yerel değişkenlerden daha hızlı olması gerekiyordu.

Bununla birlikte, modern derleyiciler kod optimizasyonunda çok iyidir ve yazmaç değişkenlerini kullanmanın programınızı daha hızlı hale getirme olasılığı çok azdır.

Verilen uygulama için kodu nasıl optimize edeceğinizi bildiğiniz gömülü sistemler üzerinde çalışmadığınız sürece, kayıt değişkenlerinin kullanımı yoktur.

Statik Değişken

staticAnahtar sözcük kullanılarak statik bir değişken bildirilir . Örneğin;

 statik int i;

Statik değişkenin değeri programın sonuna kadar devam eder.

Örnek 2: Statik Değişken

 #include void display(); int main() ( display(); display(); ) void display() ( static int c = 1; c += 5; printf("%d ",c); ) 

Çıktı

 6 11

İlk işlev çağrısı sırasında, c'nin değeri 1 olarak başlatılır. Değeri 5 artar. Şimdi, c'nin değeri ekrana yazdırılan 6'dır.

İkinci işlev çağrısı sırasında, c tekrar 1 olarak başlatılmaz. Bunun nedeni c'nin statik bir değişken olmasıdır. C değeri 5 artırılır. Şimdi, değeri ekrana yazdırılan 11 olacaktır.

Ilginç makaleler...