Union Enum Typedef

You might also like

You are on page 1of 15

Birlik (Union)

Union birden fazla alan temsil eder ve o


alana ait en uzun alann bykl kadar
hafzada yer ayrilir.
union [birlik adi]
{
deiken tr <deiken ad>;
deiken tr <deiken ad>;
...
};
union dene{
int x;
char t[10];
char y[5];
}k;
Bu tanma gre x
tamsays iin bellekte 4
baytlk t deikeni iin 10
baytlk ve y deikeni
iin 5 baytlk yer
ayrlmtr. En byk
deer olan 10 baytlk
yer ayrlr.
1
Birlik (Union), enum, typedef
Birlik (Union)
Unionlar bir hafza parasnn farkl veritipleri
tarafndan kullanlabilmesini salar
Tm deikenler tarafndan kullanlan alan
aslnda yndr.
Deklarasyonu Structure gibidir, ancak kullanm
tamamen farkldr.
union union_ismi{
yedeikenTipi1yeDeikenIsmi1;
yedeikenTipi1yeDeikenIsmi1;

. }nesneIsimleri
2
Birlik (Union), enum, typedef
Birlik (Union)
union union1{
char c; int i; float f;
}unionNesne1;
iinde 3 eleman bulunur:
unionNesne1.c
unionNesne1.i
unionNesne1.f
3 deiken farkl tipte olsalar bile ayn hafza
adresini kullanrlar
Bu nedenle birinde yaplan deiiklik tm
deikenlere yansr
Birbirinden bamsz 3 deer tutulmas mmkn
deildir.
3
Birlik (Union), enum, typedef
Anonymous Unions (simsiz
Birlikler)
Eer isimsiz bir birlik kullanlrsa bu birliin
elemanlarna direk olarak ulalabilir
2 kod arasndaki tek fark ye deikenlere
ulama eklimizdir:
Sradan Birlik ieren Structure simsiz Birlik ieren Structure
st r uct {
char basl i k[ 50] ;
char yazar [ 50] ;
uni on {
f l oat dol ar ;
i nt l i r a;
} f i yat ;
} ki t ap;
st r uct {
char basl i k[ 50] ;
char yazar [ 50] ;
uni on {
f l oat dol ar ;
i nt l i r a;
};
} ki t apI si msi z;
Sradan Birlik ieren Structure simsiz Birlik ieren Structure
kitap.fiyat.dolar
kitap.fiyat.lira
ki t apI si msi z. dol ar
ki t apI si msi z. l i r a
!!!Dikkat: dolar ve lira deerlerinin ierisine farkl deerler yklenemez!!!
4
Birlik (Union), enum, typedef
Birlik (Union)
5
Birlik (Union), enum, typedef
Struct ve Union Tanmda Hafzada Ayrlan Yer
Neden 4
?
Neden 8 ?
6
Birlik (Union), enum, typedef
Struct ve Union Birlikte Kullanm
7
Birlik (Union), enum, typedef
Struct ve Union Birlikte
Kullanm
katalog.kitap.yazar char tipinde, iine yazlan
65 deeri A olarak okunuyor
katalog.kitap.yazar iine kaydedilen AB
karakterleri, integer olarak okunduu zaman,
66(B) ve 65 (A) deerlerinin 2lik dzende 8bite
karlk gelen deerleri birletirilir ve okunur:
BA
01000001 01000010
16961
8
Birlik (Union), enum, typedef
Enum
Deikenin alabilecei deerlerin sabit olduu
durumlarda program daha okunabilir hale
getirmek iin kullanlr.
Genel yazm biimi;
enum tip_ad{deer_1,
deer_2,
...,
deer_n} deiken_ad;
tip_ad ve deiken ad; C++ dilinin
isimlendirme kurallarna uygun olarak seilmi
bir isimdir.
9
Birlik (Union), enum, typedef
Enum
C++ta enumtr dier deiken trlerine gre
ayr bir trdr ve enumtrnden deikenlere
ancak enumtrnden sabitler atanabilir.
Enumiinde deer atayabilirsiniz. Atadnz ilk
deerden itibaren ardk deer atama deer
atamasanz bile otomatik devamedecektir.
enum para_birimi{TL=1, DOLAR, EURO}
Burada; TL=1
DOLAR=2
EURO=3
deerlerini alacaktr.
10
Birlik (Union), enum, typedef
Enum
11
Birlik (Union), enum, typedef
Enum
12
Birlik (Union), enum, typedef
typedef
C++ var olan deiken tiplerine kendi belirlediimiz
isimleri takmamza izin verir.
Var olan deiken tiplerine takma isim veriyoruz denebilir
typedef var_olan_deiken_tipi bizim_verdigimiz_isim;
Nerede kullanlabilir:
Sklkla kullanlan deiken tiplerine takma isim koymak iin
Programn daha sonraki versiyonlarnda belli deikenler iin
kullanlan deiken tipinin deime ihtimali varsa.
Bu durumda program iinde birden ok yerde kullanlan deiken
tipinin, her kullanld yerde deil sadece typedef tanmlamasnda
deitirilmesi yeterli olacaktr
t ypedef char kar akt er ;
t ypedef char * kPoi nt er ;
t ypedef i nt i nt Di zi [ 50] ;
13
Birlik (Union), enum, typedef
typedef
C++ dilinde program
kodlar bu deyimle
tamamen
Trkeletirilebilir.
Yan taraftaki rnekte
typedef iin iki ayr
kullanm alan
tanmlanmtr.
14
Birlik (Union), enum, typedef
typedef
15
Birlik (Union), enum, typedef

You might also like