اذهب إلى المحتوى
  • 1

ما الفرق بين union و struct في C؟

Programmer

السؤال

هل هناك فرق بين استخدام struct و union في لغة C لأنني لاحظت أنهما لا يختلفان من ناحية التعريف والاستخدام 

union myUnion{         
   string a[32];
   float salary;
   int average;
}
struct myStruct{
   string a[32];
   float average;
   int number;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

union هي أحد بنى المعطيات في لغة C وهي مماثلة تمامًا للهياكل Structure وتعرّف بنفس الطريقة التي يعرّف بها الـ struct 

union car{
  char name[50];
  int price;
};

وكذلك المتغيرات من نوع union تُنشأ بشكل مماثل للمتغيرات من نوع struct 

union car{
  char name[50];
  int price;
}c1, c2, *c3;

OR;

union car{
  char name[50];
  int price;
};
-------Inside Function-----------
union car c1, c2, *c3;

الفرق بين union و struct هو في تخصيص الذاكرة بينهما فمقدار الذاكرة المطلوبة لتخزين متغير من نوع struct هو مجموع حجم الذاكرة لجميع الأعضاء members في المتغير struct، بينما الذاكرة المطلوبة لتخزين متغير من نوع union هو مقدار الذاكرة المطلوبة لأكبر عنصر في المتغير union.

 

المثال التالي يوضح بشكل كبير الفرق بين حجم الذاكرة المطلوبة لتخزين متغير struct وحجم الذاكرة المطلوبة لتخزين متغير union:

#include <stdio.h>
union job {         //defining a union
   char name[32];
   float salary;
   int worker_no;
}u;
struct job1 {
   char name[32];
   float salary;
   int worker_no;
}s;
int main(){
   printf("size of union = %d",sizeof(u));
   printf("\nsize of structure = %d", sizeof(s));
   return 0;
}

النتيجة:

size of union = 32
size of structure = 40

حجم الذاكرة المطلوبة للمتغير struct في المثال أعلاه:

struct.thumb.png.c8371bb0c471fb75c7a2386

حجم الذاكر المطلوبة للمتغير union في المثال أعلاه:

union.thumb.png.d842fe11ca0530e3d97c3650

ما الفرق بين union و struct في C؟

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...