15.4 Birlik, union Deyimi
15.4 Birlik, union Deyimi
Birlikler de yapılar gibi sürekli belleğe yerleşen nesnelerdir. Birlikler yapılara göre seyrek kullanılır. Bir programda veya fonksiyonda değişkenlerin aynı bellek alanını paylaşması için ortaklık bildirimi union deyimi ile yapılır. Bu da belleğin daha verimli kullanılmasına imkan verir. Bu tipte bildirim yapılırken struct yerine union yazılır. Genel yazım biçimi:
1 2 3 4 5 |
union birlik_adı{ tip birlik_değişken_ismi; tip birlik_değişken_ismi; ... }; |
1 2 3 4 5 |
union paylas{ float f; int i; char kr; }; |
Yukarıdaki bildirim yapıldığında, değişkenler için bellekte bir yer ayrılmaz. Değişken bildirimi:
1 |
union paylas bir,iki; |
şeklinde yapılır. Üyelere erişmek aşağıdaki gibi olur:
1 2 3 |
bir.kr= 'A'; iki.f = 3.14; bir.i = 2000; |
Program 15.7: typedef – deyiminin kullanımı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* 15prg07.c union x ve y nin aynı bellek alanını işgal ettiğinin kanıtı */ #include <stdio.h> union paylas{ int x; int y; }z; int main() { int *xAdres,*yAdres; z.x = 11; xAdres = &z.x; printf("x = %d y = %d\n",z.x, z.y); z.y = 22; yAdres = &z.y; printf("y = %d y = %d\n",z.x, z.y); printf("xAdres = %p yAdres = %p\n",xAdres, yAdres); return 0; } |
ÇIKTI
1 2 3 |
x = 11 y = 11 y = 22 y = 22 xAdres = 0x804974c yAdres = 0x804974c |