قبلا در قسمت ساختمان و نوع شمارشی اسم یونیون را آورده بودیم ولی توضیحی در این باره داده نشده بود.در این  مقاله شمابا ین مفهوم آشنا شده و دستورات آن را می آموزید ضمن این که برای درک بهتر هم برای شما چند مثال آورده شده است.

یک یونیون (union) مجموعه ای از چند متغیر است که تحت یک نام گروه بندی می شوند و از یک فضای حافظه بطور مشترک استفاده می کنند. یک یونیون مشابه ساختمان تعریف و استفاده می شود فقط به جای کلمه struct کلمه کلیدی union نوشته می شود.

union tag
{
union_member(s);
} instance;

کلمه کلیدی union برای اعلان یونیون است. tag نامی است که به یونیون داده می شود. اجزای یونیون درون آکولاد قرار می گیرند. instance یک متغیر یونیون است که می تواند درون برنامه هم با فرمت زیر اعلان شود.

union tag instance;

علت اینکه این نوع داده یونیون نام دارد اینستکه چند نوع داده را با هم متحد می کند. کلیه اجزای یونیون از یک ناحیه حافظه به صورت مشترک استفاده می کنند بنابراین درهرلحظه فقط یک جزء را می توان استفاده کرد و بطور همزمان نمی توان از این متغیرها استفاده کرد. اندازه یونیون به اندازه بزرگترین جزء آن است.

مثال.

union NumericType {
int ivalue;
long lvalue;
double dvalue;
}

مثال. تنها اولین جزء متغیر یونیون هنگام اعلان می تواند مقداردهی اولیه شود.

union date_tag {
char full_date[9];
struct part_date_tag {
char month[2];
char break_value1;
char day[2];
char break_value2;
char year[2];
} part_date;
}date = {“01/01/97”};


اجزای یونیون مشابه ساختمان توسط عملگر (.) دسترسی می شوند. دقت کنید در هر لحظه با کدام جزء دارید کار می کنید. اگر یک جزء را مقداردهید و از جزء دیگر استفاده کنید نتایج غرقابل پیش بینی خواهد بود.