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

جدول المقارنة
معلمات المقارنة | الهيكلية | الاتحاد |
---|---|---|
تعريف | يخصص الهيكل عناصر مختلفة لمواقع ذاكرة مختلفة. | Union \ يخصص عناصر ذاكرة مختلفة لنفس الموقع. |
بناء الجملة | الهيكل 1 {نوع البيانات 1 ؛ نوع البيانات 2 ؛…} المتغير 1 ، المتغير 2 ،… ؛ | union1 {نوع البيانات 1 ؛ نوع البيانات 2 ؛…} متغير 1 ؛ متغير 2 ،… ؛ |
البحث عن كلمة | البنية | الاتحاد |
ذاكرة | جميع أنواع البيانات في مواقع ذاكرة منفصلة. | جميع أنواع البيانات في نفس موقع الذاكرة. |
المقاس | حجم التخزين هو مجموع حجم كافة عناصر البيانات. | حجم التخزين هو قيمة أكبر نوع بيانات. |
ما هو الهيكل؟
الهياكل هي المتغيرات التي يمكنها الاحتفاظ بالعديد من أنواع عناصر البيانات في نفس الوقت. ومع ذلك ، من الجدير بالملاحظة أن عناصر البيانات التي يحتفظ بها الهيكل يمكن أن تكون من أنواع بيانات مختلفة.
وبالتالي ، تعد البنية طريقة مفيدة جدًا لتخزين البيانات والوصول إليها ومعالجتها. يتم تعريف الهيكل باستخدام عبارة "Struct". لفهم ما هي الكلمة الرئيسية ، نحن سوف يكون للنظر قليلاً في مفهوم اللغة.
في أي لغة برمجة ، وليس فقط لغة C ، نحتاج إلى استخدام كلمة أساسية أو أمر يساعد المترجم على التعرف على وظيفة معينة تم استدعاؤها ، وسيتم تنفيذها وفقًا لذلك.
يتبع بناء جملة الهيكل النمط التالي:
هيكل هيكل_اسم {
char firstName [10] ؛
char lastName [10] ؛
عمر Int
عنوان char [20] ؛
};
تمت تسمية هذه البنية باسم "اسم_الهيكل" ويمكن استدعاؤها في أي مكان في الوظيفة بعد تحديدها. يمكن استدعاؤه عدة مرات أيضًا ، حسب المتطلبات. يمكننا أن نرى أن الهيكل يحتوي على عدد قليل من عناصر البيانات كسمات له.
هم الاسم الأول للشخص ، و الكنية من ذلك الشخص وعمره وعنوانه. لاحظ كيف يوجد أكثر من نوع بيانات واحد في الهيكل. سيكون لجميع أنواع البيانات هذه مواقع ذاكرة منفصلة حيث سيتم تخزينها.
افتراضيًا ، يكون كل الأعضاء في الهيكل عامًا. نعني بشكل عام أنه يمكن لجميع الوظائف والكائنات الأخرى الوصول إلى جميع أنواع البيانات في الهيكل. ومع ذلك ، يمكن تغيير هذه الخاصية إلى خاص لحماية البيانات.

ما هو الاتحاد؟
الاتحاد هو نوع بيانات يخزن عناصر بيانات مختلفة بالداخل. يوجد هذا في لغة البرمجة C ، والتي تساعد في إدراج البيانات ومعالجتها والوصول إليها في البرنامج.
ومع ذلك ، من الجدير بالملاحظة أن النقابات لا يمكنها الاحتفاظ بعناصر بيانات من أنواع بيانات مختلفة ، مما يحد من قدراتها مقارنة بالهياكل إلى حد ما.
عندما نحدد أو نطلق على الاتحاد ، فإنها إلى حد كبير نفس الطريقة التي نسميها الهيكل. الكلمة الأساسية لـ union هي "union" فقط ، متبوعة باسم الاتحاد الذي يرغب المبرمج في منحه.
بناء جملة الاتحاد كما يلي:
الاتحاد union_name {
كائن البيانات 1 ؛
كائن البيانات 2 ؛
… ؛
};
على غرار الهياكل ، يمكن استخدام الاتحاد ، بعد تعريفه ، في أي مكان في الوظيفة ، والفئات الأخرى ، والكائنات. يمكن استخدام الاتحاد عدة مرات حسب الحاجة.
ستكون مساحة الذاكرة التي تشغلها الوحدة هي نفسها الذاكرة المطلوبة لاستيعاب أكبر نوع بيانات مذكور في الاتحاد.

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