دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • اسفند

جلسه ۱۸ : union در زبان C

  • دسته‌بندی‌ها :
جلسه ۱۸ : union در زبان C
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت تمامی دوستان عزیز سایت پی وی لرن .و کاربرانی که دوره کامل آموزش زبان C را دنبال می کنند. و کاربرانی که با سری آموزش های زبان C همراهمون هستند. در این جلسه به Unions در C و  دسترسی به اعضای Unions در C و … می پردازیم.

      union در زبان c

      Union یک نوع داده خاص در زبان برنامه نویسی C می باشد که به ما امکان ذخیره سازی انواع داده های مختلف در یک محل از حافظه را می دهد.

      شما می توانید یک union را با تعداد زیادی عضو تعریف کنید.

      اما فقط یکی از این عضوها می تواند مقدار داشته باشد.

      union ها یک روش کارآمد برای استفاده از یک محل حافظه برای چند هدف ارائه می دهند.

      تعریف یک union

      تعریف یک union مشابه تعریف یک ساختار است.

      union یک نوع داده جدید را با بیش از یک عضو برای برنامه شما تعریف می کند.

      فرمت union به شرح زیر است .

      مثال : 

      بخش union tag اختیاری است و تعریف عضوهای union مانند تعریف متغیرهای عادی می باشد.مانند  int i; یا float f یا هر تعریف دیگری از متغیر معتبر.

      در انتهای تعریف union، قبل از سمی کالن می توانید یک یا چند متغیر را که از نوع union بصورت اختیاری هستند تعریف کنید.

      در مثال زیر یک union با نام Data که شامل سه عضو است تعریف شده است:

      مثال : 

      در حال حاضر، یک متغیر از نوع Data می تواند یک عدد صحیح، یک عدد اعشاری یا یک رشته از کاراکتر را ذخیره کند.

      این به این معنی است که یک متغیر واحد، یعنی همان مکان حافظه، می تواند برای ذخیره چندین نوع داده استفاده شود.

      شما می توانید انواع داده های تعریف شده را در داخل یک union بر اساس نیاز خود استفاده کنید.

      حافظه اشغال شده توسط union به اندازه کافی بزرگ خواهد بود تا بتواند بزرگترین عضو union را نگه دارد.

      به عنوان مثال، در مثال فوق، نوع داده ها ۲۰ بایت حافظه را اشغال می کند زیرا این فضای حداکثر است که می تواند توسط یک رشته کاراکتر اشغال شود.مثال زیر حجم کل حافظه اشغال شده توسط union را نشان می دهد .

      مثال : 

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

      مثال : 

      دسترسی به اعضای Unions در C

      برای دسترسی به هر عضو Unions ، ما از عملگردسترسی عضو (.) استفاده می کنیم.

      در هنگام تعریف یک متغیر از نوع union باید از کلمه کلیدی union استفاده کنید.

      عملگر دسترسی به عضو کدیست بین نام متغیر Unions و عضو Unions که ما مایل به دسترسی به آن هستیم کد شده است.

      مثال زیر نشان می دهد که چگونه از یک Unions در یک برنامه استفاده کنید.

      مثال : 

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

      مثال : 

      در اینجا می توانیم ببینیم که ارزش های i و f اعضای Unions خراب شده اند.

      چرا که مقدار نهایی اختصاص داده شده به union محل حافظه را اشغال کرده است.

      این به این دلیل است که ارزش عضو STR به خوبی چاپ می شود و سایر عضو ها با مقادیر زباله پر می شوند.

      حالا یک بار دیگر به همان مثال نگاه کنیم که در آن یک متغیر را در زمانی استفاده کرده ایم که هدف اصلی داشتن union ها است .

      مثال : 

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

      مثال : 

      در اینجا، همه اعضا به خوبی چاپ می شوند، زیرا یک عضو در یک زمان استفاده می شود.

      کلام پایانی

      خوشحالیم ازاینکه در این مجموعه آموزشها همراه ما هستید. مبحث Unions در C و دسترسی به اعضای Unions در C هم به پایان رسید. امیدوارم مشکلاتی که در این زمینه داشتید رفع شده باشه. جلسه بعد را با typedef در زبان C همراهتون هستیم.

      QR:  جلسه ۱۸ : union در زبان C
      به اشتراک بگذارید