Logo ar.removalsclassifieds.com

الفرق بين الهيكل والنقابة في C (مع الجدول)

جدول المحتويات:

Anonim

في لغة البرمجة C ، هناك أنواع بيانات محددة مسبقًا وأنواع بيانات معرّفة من قبل المستخدم. أمثلة على أنواع البيانات المعرفة من قبل المستخدم هي الهياكل والنقابات في C.

في Structure and Union ، يمكن للمستخدمين تحديد أنواع بيانات ووظائف أعضاء مختلفة للوصول إلى جميع المتغيرات. على الرغم من أن كلاهما يتبع نفس البنية ، إلا أن هناك فرقًا كبيرًا بينهما.

الهيكل مقابل الاتحاد في C.

في الهيكل ، إجمالي حجم الذاكرة يساوي مجموع أحجام جميع أنواع البيانات في الهيكل. بينما في Union ، يكون حجم مساحة الذاكرة الإجمالية مساويًا لحجم أكبر نوع بيانات في الاتحاد. إنها واحدة من أهم الاختلافات بين الهيكل والاتحاد.

فمثلا

عمل الهيكل

{

Int المال

اسم الحرف

} s1 ؛

في هذا ، سيكون حجم الذاكرة للبنية المخصصة 2 + 1 = 3 بايت لأن حجم العدد الصحيح هو 1 بايت وحجم الحرف 2 بايت. ومن ثم سيكون الحجم 3 بايت.

"العمل النقابي

{

Int المال

اسم الحرف

} s1 ؛

في الاتحاد ، سيكون حجم الذاكرة المخصصة 2 بايت نظرًا لأن الحد الأقصى لحجم نوع البيانات في الاتحاد هو 2 بايت ، أي نوع بيانات الحرف.

جدول المقارنة بين الهيكل والاتحاد في C (في شكل جدول)

معلمة للمقارنة اتحاد بنية
تعريف الكلمات الرئيسية يستخدم الكلمة الأساسية "union" يستخدم الكلمة الرئيسية "هيكل"
حجم الذاكرة الحجم يساوي عنصر الحجم الأكبر. الحجم يساوي مجموع كل العناصر في الهيكل
ذكريات مشتركه يتم مشاركة كل ذاكرة العنصر مع عناصر مختلفة لا تحتوي عناصر الهيكل على ذاكرة مشتركة.
الوصول إلى العنصر يتم الوصول إلى عنصر واحد فقط في وقت واحد يمكن الوصول إلى أي عدد من العناصر في أي وقت
مثال مثال الاتحاد {أنواع البيانات والأعضاء} obj؛ نموذج بناء {أنواع البيانات والأعضاء} obj؛

ما هو الهيكل في سي؟

الهيكل عبارة عن مجموعة بيانات محددة من قبل المستخدم وهي عبارة عن مجموعة من أنواع البيانات المختلفة. سيكون المثال التالي مفيدًا جدًا. لنفترض أن المبرمج يحتاج إلى تخزين بعض البيانات مثل الطالب والاسم والفصل الدراسي والعنوان وغير ذلك الكثير.

حسنًا ، هناك طريقتان للتعامل مع هذه المشكلة ، إحداهما إنشاء أنواع بيانات مختلفة والأخرى هي إنشاء بنية.

هنا في هذه الحالة ، سيكون الهيكل مفيدًا لأنه إذا قمت بإنشاء متغيرات بشكل منفصل ، فأنت بحاجة إلى إنشاء العديد من المتغيرات لكل طالب ، وسيكون الأمر مدمرًا حقًا. بدلاً من ذلك ، يمكن استخدام الهيكل مرارًا وتكرارًا.

يمكن إنشاء هيكل باستخدام كلمة رئيسية ، هيكل.

فمثلا

هيكل الهيكل_اسم {

نوع البيانات datatype_name ؛

نوع البيانات datatype_name ؛

نوع البيانات datatype_name ؛

نوع البيانات datatype_name ؛

};

إذا كنت ترغب في الوصول إلى أي من أعضاء البيانات ، فأنت بحاجة إلى إنشاء كائن مثل

هيكل الهيكل_اسم_اسم_العنصر ؛

باستخدام بناء الجملة object_name.datatype_name ، ستتمكن من الوصول إلى نوع البيانات في الهيكل.

ما هو Union in C؟

على غرار اتحاد البنى ، يوجد نوع بيانات آخر محدد من قبل المستخدم في لغة البرمجة سي. عندما يحدد المبرمج اتحادًا ، يتم عمل نوع بيانات محدد من قبل المستخدم ، ولكن لا يوجد موقع ذاكرة.

حسنًا ، إذا كنت ترغب في تخصيص ذاكرة ، فحينئذٍ يحتاج المرء إلى إنشاء متغيرات في الاتحاد. الاتحاد له خاصية لا تسمح لأي مبرمج بالوصول إلى أنواع البيانات أكثر من نوع واحد.

وبالتالي ، يمكن للمبرمج في الاتحاد الوصول إلى عضو بيانات واحد في كل مرة. دعونا نأخذ مثالا صغيرا.

الاتحاد union_name

{

نوع البيانات_نوع_اسم_البيانات

نوع البيانات_نوع_اسم_البيانات

نوع البيانات_نوع_اسم_البيانات

نوع البيانات_نوع_اسم_البيانات

};

في المثال أعلاه ، يتم عرض الهيكل الأساسي للاتحاد. إنها الطريقة التي ينشئ بها المبرمج الاتحاد. إذا كنت ترغب في الوصول إلى أي نوع بيانات في الاتحاد ، فأنت بحاجة إلى استخدامه. عامل مماثل للهيكل.

الاتحاد union_name objname ؛ باستخدام البيان أعلاه ، يمكنك إنشاء الكائن الذي سيساعدك على الوصول إلى أي عضو بيانات في الاتحاد باستخدام عامل التشغيل dot.

الاختلافات الرئيسية بين الهيكل والاتحاد في C.

  1. الهيكل هو نوع بيانات معرف من قبل المستخدم يخزن أنواع البيانات من أنواع مختلفة. أيضًا ، يتم استخدامه لتمثيل مجموعة من قيمة أنواع البيانات. إذا احتاج المبرمج إلى تحديد اتحاد ، فيجب على المبرمج استخدام بنية الكلمات الأساسية. بينما يحتاج الاتحاد إلى كلمة أساسية موحدة للتعريف.
  2. في الهيكل ، يتم تخزين جميع أنواع البيانات في موقع مختلف ويمكنك الوصول إلى أعضاء بيانات متعددين. في حين أن جميع أعضاء البيانات في الاتحاد يشتركون في نفس موقع الذاكرة ولا يمكن الوصول إلا إلى عضو واحد من البيانات في كل مرة.
  3. في الهيكل ، لتهيئة أي عضو ، يمكن تهيئة العديد من الأعضاء في وقت واحد ، ولكن في حالة الاتحاد ، يمكن تهيئة العضو الأول فقط.
  4. يعتمد الحجم الإجمالي للهيكل على مجموع حجم جميع أعضاء البيانات ، بينما في حالة الاتحاد ، يكون الحجم مساويًا لعضو البيانات الذي يكون حجمه الأكبر بين الجميع.
  5. في الهيكل ، كل نوع بيانات له تخصيص مختلف للذاكرة ، بينما في الاتحاد ، هناك ذاكرة واحدة مخصصة لأكبر عضو بيانات.

استنتاج

الهيكل والنقابات كلاهما من أنواع البيانات المعرفة من قبل المستخدم المستخدمة في برمجة c. تشترك البنية والنقابات في نفس مفهوم تخزين أنواع بيانات متعددة. ويتم الوصول إلى جميع أنواع البيانات في الهيكل والتوحيد باستخدام عامل تشغيل نقطي.

تختلف الهياكل والنقابات فقط من حيث الحجم وتخصيص الذاكرة ، لكن حالة الاستخدام هي نفسها. كلاهما يزيد من قابلية إعادة استخدام الكود وأكثر من ذلك بكثير. إذا كنت تريد تخزين العديد من القيم لنوع بيانات واحد ، فستكون البنية والوحدة مفيدة.

ستكون حالة الاستخدام الأساسية للهيكل والنقابة عندما تحتاج إلى تخزين سجل عامل. سيقوم الهيكل أو الاتحاد بتخزين جميع البيانات في هيكل أو اتحاد ، ومن ثم يمكنك تخزين البيانات أو الوصول إليها. يتمثل الاختلاف الرئيسي في تخصيص الذاكرة والوصول إلى نوع البيانات.

الفرق بين الهيكل والنقابة في C (مع الجدول)