Birlik (Union, İttihad)

Yazan : Şadi Evren ŞEKER

Bilgisayar bilimlerinde hafızanın verimli kullanılması ve aynı amaca hizmet eden bilgilerin birlikte tutulması amacıyla geliştirilen bu yapılarda tanımlanan alt verilerin tamamı hafızada (RAM) bir arada tutulur ve bir seferde hepsine erişilebilir.

Aslında kullanım ve mantık olarak yapılara (Structs) oldukça çok benzeyen birliklerin (unions) tek farkı veriyi hafızada aynı yerde tutmasıdır.

Örneğin aşağıdaki C dilinde yazılmış kodu ele alalım:

    #include<stdio.h>

    typedef union birlik
    {
        double PI;
        int B;
    }BrlikDenemesi;

    int main()
    {
        BirlikDenemsi sayilar;
        sayilar.PI = 3.14;
        sayilar.B = 50;

    return 0;
    }

Yukarıdaki örnekte görüldüğü üzere bir double bir de int değişken tiplerinden bir birlik (union) tanımlanmış ve bu birliğin içindeki değerlere erişilmiştir.

Yapılarda (Structs) oluduğu gibi birliklerde (unions) de . ve -> işelemleri (operators) kullanılmaktadır. Yani bir birlik (union) göstericisinin bir elemanına erişilirken -> operatörü kullanılabilir.

Yukarıdaki kod bu durumda aşağıdaki şekilde yazılabilir:

    #include<stdio.h>

    typedef union birlik
    {
        double PI;
        int B;
    }BrlikDenemesi;

    int main()
    {
        BirlikDenemsi *sayilar;
        sayilar->PI = 3.14;
        sayilar->B = 50;

    return 0;
    }

Yukarıdaki kodun ilk koddan farkı sadece sayilar isimli değişkenin bir gösterici (pointer) olarak tanımlanmasıdır.

Bu yazıyı beğendiyseniz, başkalarının da ilgisini çekebilirsiniz:


37 views

Leave a Reply


iki + 5 =

Benzer Yazılar:

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Birlik (Union, İttihad)' isimli yazı 20 Apr 2009 tarihinde, saat: 16:29 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam37 defa okunmuştur.

Benzer yazıları C/C++, Programlama Dilleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Category: C/C++, Programlama Dilleri