Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1
Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama Dilleri-ders08/ 2
typedef Bu deyimle daha önceden var olan veri tiplerine daha anlaşılır ya da bizim için daha anlamlı yeni isimler verebiliriz. Örn: typedef float GERCEL_SAYI; typedef int TAM_SAYI; gibi tanımlamalar yapabiliriz. Daha sonra bu yeni tipleri programlarda kullanabiliriz. Programlama Dilleri-ders08/ 3
typedef Programlama Dilleri-ders08/ 4
struct Bu deyim ile aynı ya da farklı tipteki birçok değişken bir araya getirilir ve bunların topluluğuna bir isim verilir. Bu farklı değişkenlerin paketlenmesiyle yeni bir değişken tipi oluşturulmuş olur. Örn: struct yapinin_adi{ tip1 degisken1; tip2 degisken2;... }degisken_adlari; Programlama Dilleri-ders08/ 5
struct Programlama Dilleri-ders08/ 6
struct Bir struct yapısı ile tanımlanmış yeni tipin bellekte ne kadar yer kapladığını öğrenmek için sizeof() fonksiyonu kullanılır. ya da size_t boyut; boyut = sizeof(struct kayit); struct kayit a; boyut=sizeof(a); Programlama Dilleri-ders08/ 7
struct typedef kullanarak yapılar tanımlayabiliriz. Bu tanımlama şekliyle değişkenleri daha kolay tanımlayabiliriz. typedef struct insan{ char ad[20]; unsigned short int yas,boy,kilo; }kisi; kisi x,y; Programlama Dilleri-ders08/ 8
struct dizisi struct A{ char *ad; int adet; }; struct A dizi[10]; // 10 elemandan olusan struct A //dizisi dizi[0].adet = 10; Programlama Dilleri-ders08/ 9
struct 3DNokta{ unsigned int x; unsigned int y; unsigned int z; }; İlk değer atama struct 3DNokta n1={2,3,5}; struct 3DNokta n2={1,2}; Programlama Dilleri-ders08/ 10
struct tarih{ unsigned short int gun; unsigned short int ay; int yil; }; struct kisi{ char *ad; struct tarih dogumgunu; }; struct kisi ahmet={ Ahmet,{2,2,1982}}; ahmet.dogumgunu.ay=2; Programlama Dilleri-ders08/ 11
Fonksiyonlara Parametre Olarak Aktarımı int yilfark(struct tarih ilk,struct tarih ikinci){ int fark=0; fark=ilk.yil-ikinci.yil; return fark; } Programlama Dilleri-ders08/ 12
Fonksiyonlara Parametre Olarak Aktarımı int yildegis(struct tarih *t,int yeniyil){ t->yil=yeniyil; } int main(){ struct tarih g={2,2,1980}; yildegis(&g,1982); printf( %u - %u -%d\n,g.gun,g.ay,g.yil); } Programlama Dilleri-ders08/ 13
Union (Ortaklık) Birden fazla değişkenin aynı bellek alanını paylaşmaları istenildiğinde bu deyim kullanılır. Bu kullanım ile bellek daha verimli kullanılmış olur. Değişkenler aynı bellek alanını paylaştıkları için herhangi birine yapılacak atama işlemi diğer değişkenleride etkiler. Bellekte üyelerinden en çok bellek alanı kullanan kadar yer kaplar. Programlama Dilleri-ders08/ 14
Union (Ortaklık) union paylas{ float f; int i; char kr; }; float (4),int(2),char(1) byte kapladığı varsayılırsa: Bellekte: i byte byte byte byte kr f Programlama Dilleri-ders08/ 15
Union (Ortaklık) Programlama Dilleri-ders08/ 16
Programlama Dilleri-ders08/ 17
enum Sıra şeklinde yeni veri tipi tanımlamak için kullanılır. Genelde program içerisindeki sayısal karşılaştırmaların programcılar açısından daha kolay okunabilir ve anlaşılabilir olması için kullanılır. enum enum_adi{ kume_elemanlari }degisken_tanimlamalari; Programlama Dilleri-ders08/ 18
enum Örn: enum renk{kirmizi,yesil,beyaz,mavi}; Bu şekilde kirmizi,yesil,beyaz,mavi adında yeni değişkenler tanımlamış oluruz ve bunların sayısal değerleride 0'dan başlayarak olomatik olarak verilir. kirmizi:0,yesil:1,beyaz:2,mavi:3 Programlama Dilleri-ders08/ 19
enum Programlama Dilleri-ders08/ 20
Union (Ortaklık) Birden fazla değişkenin aynı bellek alanını paylaşmaları istenildiğinde bu deyim kullanılır. Bu kullanım ile bellek daha verimli kullanılmış olur. Değişkenler aynı bellek alanını paylaştıkları için herhangi birine yapılacak atama işlemi diğer değişkenleride etkiler. Bellekte üyelerinden en çok bellek alanı kullanan kadar yer kaplar. Programlama Dilleri-ders08/ 21
Programlama Dilleri C Dili Programlama Dilleri-ders08/ 22