Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Programlama Yapılar (Structs) NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr
2
NİŞANTAŞI ÜNİVERSİTESİ ©
yapılar Yapı nedir Yapılar (structures) programcının birden fazla nesneyi bellekte ardışıl olarak yaratmasına izin veren bir sentaks aracıdır. Yapıların kullanılmasıyla bellekte birbirini izleyecek şekilde yer alan birden fazla nesne yaratılabilir. Bellekte ardışıl nesnelerin dizi tanımlamalarıyla da yaratılabileceğini biliyorsunuz. Ancak yapıların dizilerden bazı farklılıkları vardır: Diziler aynı türden nesneleri içinde tutabilirken, yapılar farklı türlerden nesneleri tutabilirler. Yapıların kullanılmasının ana nedeni budur. Çoğu zaman, türleri farklı bir takım nesneler, mantıksal olarak bir bütün oluşturabilirler. İsim, yaş, cinsiyet, departman, ücret, öğrenim durumu gibi bilgileri farklı türden nesneler içinde saklayabiliriz ve bunların tamamı bir işyerinde çalışan bir kişiye ait bilgiler olabilir. Aralarında mantıksal ilişki olan farklı türden veriler yapılar içinde saklanabilir. NİŞANTAŞI ÜNİVERSİTESİ ©
3
NİŞANTAŞI ÜNİVERSİTESİ ©
yapılar Yapı Bildirimi Yapı ile programcının yeni bir tür yaratmasına olanak sağlar. Yapıların kullanılabilmesi için yapılması gereken ilk işlem bu yeni türü derleyiciye tanıtmaktır. Tanıtma işlemi yapı bildirimi (structure declaration) ile olur. Yapı bildirimini gören derleyici, bu yeni tür hakkında bilgi edinmiş olur. Bu bildirimle derleyiciye aşağıdaki bilgiler verilir: - türün ismi - türün bellekte ne kadar yer kapladığı - elemanların isimleri Derleyici bir yapı bildirimini gördükten sonra, bu türden bir nesne tanımlandığında nesne için bellekte ne kadar yer ayıracağını öğrendiği gibi, bu nesnenin programcı tarafından kullanımına ilişkin ifadelere ilişkin derleme zamanında bazı kontroller yapabilir. Yapı bildiriminin belirli bir sentaksı vardır. NİŞANTAŞI ÜNİVERSİTESİ ©
4
NİŞANTAŞI ÜNİVERSİTESİ ©
yapılar Yapı Bildirimlerinin Yerleri Tüm bildirimler gibi yapı bildirimleri de yerel ya da global düzeyde yapılabilir. Tüm bildirimler gibi yapı bildirimlerinin de bilinirlik alanı vardır. Bildirim bir blok içinde yapılırsa, bildirilen yapı yalnızca bildirimin yapıldığı blok içinde bilinecektir. NİŞANTAŞI ÜNİVERSİTESİ ©
5
NİŞANTAŞI ÜNİVERSİTESİ ©
yapılar Yapı Türünden Nesne Tanımlaması Doğal türlerden nesneler nasıl tanımlanıyorsa yapı türünden bir nesnenin tanımlanması da aynı sentaksa göre olur. Yani önce tür belirten sözcükler daha sonra da yapı nesnesinin ismi yazılır: struct Date x; struct Point p1, p1; Yukarıdaki tanımlamaların ilgili yapı bildirimlerinin görülür olduğu bir noktada yapıldığı kabul edilmiştir. Eğer yapı nesnesi tanımlanan yerde, yapı bildirimi görülmüyorsa, derleme zamanında hata oluşacaktır. Global alanda tanımlanan bir yapı nesnesi i) Dosya bilinirlik alanına aittir. Nesnenin tanımından sonra yer alan tüm fonksiyonlar bu yapı nesnesine ulaşabilirler. ii) Statik ömürlüdür. Programın çalışma zamanının başlangıcından, programın sonlanmasına kadar bellekte yer kaplar. iii) Statik ömürlü olduğu için ilk değer ataması yapılmadığı zaman, bellekte kapladığı bütün byte’lar 0 bitleriyle doldurulur. Pratik olarak bunun anlamı yapının tüm elemanlarının değerinin 0 olmasıdır. NİŞANTAŞI ÜNİVERSİTESİ ©
6
NİŞANTAŞI ÜNİVERSİTESİ ©
yapılar Yapı Türünden Nesne Tanımlaması Yerel alanda tanımlanan bir yapı nesnesi i) Blok bilinirlik alanına aittir. Yalnızca tanımlamasının yapıldığı blok içinde bu nesneye ulaşılabilir. ii) Otomatik ömürlüdür. Programın akışı, nesnenin tanımlandığı bloğa girdiğinde nesne yaratılır. Programın akışı nesnenin tanımladığı bloğu terk ettiğinde nesne bellekten boşaltılır. iii) Otomatik ömürlü olduğu için ilk değer ataması yapılmadığı zaman, bellekte kapladığı alanda çöp değerleri vardır. Pratik olarak bunun anlamı yapının tüm elemanlarının çöp değerleriyle başlatılmasıdır. NİŞANTAŞI ÜNİVERSİTESİ ©
7
NİŞANTAŞI ÜNİVERSİTESİ ©
kaynaklar Brian W. Kernighan , Dennis M. Ritchie, (1988), C Programlama Dili – ANSI C, DAISYSCIENCE, Editor: Dr. Rifat Çölkesen . Necati Ergin, C Ders Notları, C ve Sistem Programcıları Derneği NİŞANTAŞI ÜNİVERSİTESİ ©
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.