Scope ve Storage Duration Kavramları

C programlama dilinde değişkenlerin tanımlanmasında dikkat edilmesi gereken en önemli nokta scope kavramıdır. Her değişken bir scope içinde tanımlanır ve bu scope sınırlarına bağlı olarak bir ömrü (storage duration) olur.

C programlama dilinde scope kuralları 4 alt başlıkta incelenir. Bunlar sırasıyla şöyledir;

File Scope: File Scope alanı herhangi iki süslü parantez arasında kalmayan, kod alanının global kısmında declerationu yapılan, bildirildiği noktadan dosyanın sonuna kadar her yerde kullanılabilen değişkenlerin sahip olduğu scope kavramıdır. Bu scope altındaki değişkenler programın başlangıcı ile ömürlerine başlayıp program sonuna kadar ömürlerini sürdürebilir ve hayata 0 değeri ile başlarlar. Bu yüzden böyle değişkenlerin ömürleri static storage olarak tanımlanır. Ayrıca kod alanının her yerinde bu değişkene ulaşılıp bir atama yapılabilir.

Örnek kaynak kodu;

Block Scope: Kullanıldığı block arasında sadece kullanılabilen, bu bloklar içerisinde hayatını sürdüren ve blok bittikten sonra ömürünü sürdüremeyen değişkenlerin sahip olduğu scop kavramıdır. Buradaki değişkenlerin bellek ömürleri bu sebeple automatic storage olarak tanımlanır. Buradaki blockdan kasıt iki süsle parantez arasıdır.{ }. Burada tanımlanan değişkenler hayata garbage değer ile başlar. Daha net bir ifadeyle değişkenlerin localde tanımlanma durumudur.

Örnek kaynak kodu;

Diğer iki kavram ise Function Protoype Scope ve Function Scopetur. Bu iki kavramı bir sonra ki yazımızda inceleyeceğiz. C de değişkenlerin scope ları ile ilgili en önemli anahtar sözcük static anahtar sözcüğüdür. Local bir alanda bir değişkenin declerationunu yaparken bunu static ifadesi ile yaparsak o değişken hayata 0 değeri ile başlar. Ayrıca scope dışında da bulunduğu adresden kaybolmaz ve program sonuna kadar o adresde kalmaya devam eder. Fakat ilgili değişkene erişmek için değişkenin adresini bilmemiz gerekir. İsim olarak ilgili değişkeni yazmak name look-up syntaxından dolayı yanlıştır.

Örnek kaynak kodu:

 

Bu yazı hakkında ne düşünüyorsun ?
  • Müthiş 
  • Normal 
  • Gereksiz 
  • Faydalı