130 likes | 425 Views
Faaliyet Alanı. Faaliyet alanı, bir değişkenin ömrünü sürdüğü ve tanınabildiği program aralığıdır. Değişkenlerin faaliyet alanları, onların program içerisindeki tanımlanma yerleri ile ilişkilidir. Üç gurupta incelenir. Scope. Blok faaliyet alanı( Block scope )
E N D
Faaliyet Alanı Faaliyet alanı, bir değişkenin ömrünü sürdüğü ve tanınabildiği program aralığıdır. Değişkenlerin faaliyet alanları, onların program içerisindeki tanımlanma yerleri ile ilişkilidir. Üç gurupta incelenir. Scope
Blok faaliyet alanı(Block scope) Yalnızca bir blok içerisinde tanınma aralığıdır. Fonksiyon faaliyet alanı(Function scope): Yalnızca bir fonksiyonun her yerinde tanınma aralığıdır. Dosya faaliyet alanı(File scope): Tüm dosya içinde, tüm fonksiyonlar içinde tanınma aralığıdır.
Değişken faaliyet alanı • Yerel değişkenler (local variables) • Global değişkenler (gloable variables) • Parametre değişkenleri(formal parameters)
Yerel Değişkenler(local variables) • Blokların başlarında tanımlanan değişkenlere yerel değişkenler denir. Yerel değişkenler blok faaliyet alanı kuralına uyarlar; yani yalnızca tanımlandıkları blok içinde tanınabilir ve erişilebilirler. • C’de farklı faaliyet alanlarına sahip aynı isimli değişkenler tanımlanabilir. • Aynı isimli birden fazla değişken varsa, her zaman en dar faaliyet alanına sahip olan değişkene erişilebilir.
#include <stdio.h> void main(void) { int a=10; /* sadece a degiskeni tanimli */ { int b=20; printf("a=%d b=%d\n",a,b); /* a ve b degiskenleri tanınabilir/ulasilabilir*/ } b=30; /* HATA! b nin faaliyet alani bitti */ printf("a=%d b=%d\n",a,b); }
Global değişkenler(Global Variables) • Global değişkenler bütün blokların dışında tanımlanmış olan değişkenlerdir. • Global değişkenleri mümkün olduğu kadar az kullanmak gerekir. Çünkü değişkenlerin ve fonksiyonların yeniden kullanabilirliğini (reusability)azaltır.
Parametre değişkenleri(formal parameters) • Fonksiyon parametreleri olarak kullanılan değişkenlerdir. Parametresi oldukları fonksiyonun her yerinde kullanılırlar. • Aynı faaliyet alanına sahip aynı isimli birden fazla değişken tanımlanamaz.
fonksiyon1(int a, int b) { /*a ve b degiskenleri tanimli kullanilabilir*/ } fonksiyon2(int a, int b) { int a; /*HATA*/ { int a; /*hata degil*/ } }
#include <stdio.h> int x = 1, y = 2; void demo(void); main() { printf("Before calling demo(), x = %d and y = %d. \n", x, y); demo(); printf("After calling demo(), x = %d and y = %d.\n", x, y); return 0; } void demo(void) { /* Declare and initialize two local variables. */ int x = 88, y = 99; /* Display their values. */ printf("Within demo(), x = %d and y = %d. \n", x, y); }
Nesnelerin ömürleri 1 Statik ömürlü nesneler Programın çalışması ile yaratılırlar ve program sonlanıncaya kadar faaliyet gösterirler. Object (.obj) modül içerisine yazılırlar.
C’de statik ömürlü nesneler • Global değişkenler • Stringler(iki tırnak içerisindeki ifadeler) • Statik yerel değişkenler
2 dinamik ömürlü nesneler • Programın çalışmasının belirli bir zamanında yaratılan ve belli bir süre faaliyet gösterdikten sonra yok olan nesnelerdir. Bu tür nesnelerin ömrü programın çalışma süresinden daha kısadır. • C’de dinamik ömürlü üç nesne gurubu vardır. • Yerel değişkenler • Parametre değişkenleri • Dinamik bellek fonksiyonları ile yaratılmış olan nesneler.
Yerel değişkenler ve parametre değişkenleri dinamik ömürlü nesnelerdir. Tanımlandıkları bloğun çalışması başladığında yaratılır; bloğun çalışması bitince yok olur. Faaliyet alanları kendi bloklarının uzunluğu kadar olan yerel değişkenlerin ömürleri “bloğun çalışma süresi” kadardır.