آموزش C

مباحث پایه زبان C

Bit Field ها در زبان C – آموزش زبان C

تصویر c-bit-fields_4151 Bit Field ها در زبان C - آموزش زبان C

Bit Field ها در زبان C

فرض کنید برنامه شما شامل یک ساختار با نام status و تعدادی متغیر عضو TRUE / FALSE باشد. مانند نمونه زیر:

ساختار بالا در حالت عادی به 8 بایت از فضای حافظه نیاز دارد، اما ما فقط می خواهیم مقادیر 0 و 1 را در این دو متغیر ذخیره کنیم. در چنین شرایطی زبان برنامه نویسی C راه بهتری را ارائه می دهد. اگر از این متغیرها درون ساختار استفاده می کنید، می توانید تعداد بایت هایی که آن متغیرها می گیرند را تنظیم کنید. مانند نمونه زیر:

ساختار بالا برای ذخیره متغیرها به 4 بایت از فضای حافظه نیاز دارد، اما برای ذخیره مقادیر این متغیرها فقط 2 بیت استفاده می شود. مثال زیر نحوه کارکرد Bit Field ها را نشان می دهد:

امتحان کنید

زمانی که کد بالا توسط کامپایلر C و اجرا شود، نتیجه زیر را تولید خواهد کرد:

اعلان Bit Field

شکل کلی اعلان Bit Field به صورت زیر می باشد:

توضیحات اعلان بالا را در جدول زیر مشاهده می کنید:

ردیفتوضیحات
1type

یک نوع integer می باشد که نوع تفسیر bit field را تعیین می کند.

2member_name

نام bit field را مشخص می کند.

3width

تعداد بیت در bit field را مشخص می کند، تعداد بیت ها باید کمتر یا برابر با type باشد.

متغیری که با تعداد بیت مشخص شده تعریف شود، Bit Field نامیده می شود. یک bit field می تواند بیش از یک بیت را نگه دارد. مثلا اگر شما یک متغیر برای ذخیره یک مقدار از 0 تا 7 نیاز دارید، می توانید یک bit field با عرض 3 بیت به صورت زیر تعریف کنید:

struct

ساختار فوق به کامپایلر می گوید که متغیر age فقط 3 بیت برای ذخیره سازی مقدار استفاده می کند و امکان استفاده از بیش از 3 بیت وجود ندارد. مثال زیر این موضوع را به خوبی نشان می دهد:

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

 

باکس دانلود
ثبت نظر
ریفریش کنید!
نظرات کاربران (۱ مورد)
  1. تصویر آواتار کاربر 0
    hoshicameron سه شنبه , 14 مرداد

    عالی توضیح دادید.