يک يونيون (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"};
اجزای يونيون مشابه ساختمان توسط عملگر (.) دسترسی می شوند. دقت کنيد در هر لحظه با کدام جزء داريد کار می کنيد. اگر يک جزء را مقداردهيد و از جزء ديگر استفاده کنيد نتايج غرقابل پيش بينی خواهد بود.
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"};
اجزای يونيون مشابه ساختمان توسط عملگر (.) دسترسی می شوند. دقت کنيد در هر لحظه با کدام جزء داريد کار می کنيد. اگر يک جزء را مقداردهيد و از جزء ديگر استفاده کنيد نتايج غرقابل پيش بينی خواهد بود.