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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir