اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

کاربردهای نوع داده‌ی union

+1 امتیاز
793 نمایش

نوع داده‌ی union چه کاربردهایی داره؟ من تقریباً‌ هیچ برنامه‌ی کاملی رو ندیدم که از این نوع داده استفاده کنه.

یک مشکل در مورد C++ این است که هم‌اکنون گرایشی قوی در زبان وجود دارد که شما را وادار می‌کند پیش از انجام هر کاری، همه‌ی جوانب آن را بدانید. (Larry Wall)
پرسیده شده جمعه ۳ آذر ۱۳۹۱ در C++ توسط CPP_Crawler2  
بازتگ شده جمعه ۲۳ فروردین ۱۳۹۲ توسط admin

1 پاسخ

0 امتیاز
 
بهترین پاسخ

یکی از کاربردهای union مربوط به وقتی می‌شه که می‌خوایم تو حافظه صرفه‌جویی کنیم. مثلاً

union
{
    int x;
    float f;
    long int y;
}

این union به جای ۱۴ (یا ۱۶) بایت حافظه فقط ۸(یا ۶) بایت حافظه می‌گیره.
ممکنه ادعا کنیم که تو کامپیوترهای امروزی این قدر حافظه زیاد چیزی رو عوض نمی‌کنه. اما لازمه توجه کنیم که این union ممکنه عضو کلاسی باشه که از اون کلاس یک میلیارد شی در برنامه ساخته می‌شه. بنابراین هنوز هم این صرفه‌جویی مهمه.

یک کاربرد دیگه‌ش اینه که گاهی می‌خوایم تعدادی از بیت‌های حافظه رو در مواقعی دستکاری کنیم. این دستکاری گاهی با عملیات بیتی راحت‌تره گاهی با عملیات روی داده‌ی float، گاهی با عملیات روی داده‌ی int و ...

در C++ نمی‌تونیم نوع متغیر رو در طول عمرش تغییر بدیم. بنابراین اگه یه متغیر یا یک نوع مشخص اعلان شد دیگه نمی‌تونیم از مزایای یک نوع دیگه در مورد این متغیر استفاده کنیم.

این مشکل اخیر با union حل شده. ما مثلاً ۸ بایت از حافظه رو در اختیار می‌گیریم و هر وقت از هر امکانی که بخوایم استفاده می‌کنیم و مقدار داخل اون ۸ بایت رو تغییر می‌دیم.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده یکشنبه ۱۱ فروردین ۱۳۹۲ توسط prodo  
انتخاب شده سه شنبه ۲۱ خرداد ۱۳۹۲ توسط admin