الاتحادات وكفاءة الذاكرة
افهموا الفروق بين struct وunion وكيف تحسّن الاتحادات استخدام الذاكرة
الاتحادات وكفاءة الذاكرة درس مجاني في C Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 3 دروس في المجموع.
الاتحادات وكفاءة الذاكرة
الاتحادات وكفاءة الذاكرة
الاتحاد هو نوع بيانات خاص يسمح بتخزين أنواع بيانات مختلفة في الموقع نفسه من الذاكرة.
في هذا الدرس، ستتعلم:
- كيفية تعريف الاتحادات واستخدامها.
- الفرق بين البنى والاتحادات.
- كيفية تحسين استخدام الذاكرة باستخدام الاتحادات.

ما المقصود بالاتحاد؟
ما المقصود بالاتحاد؟
يشبه الاتحاد البنية، لكن جميع أعضائه يتشاركون مساحة الذاكرة نفسها.
مثال:
union Data {
int i;
float f;
char str[20];
};
هنا، يتشارك كل من i وf وstr موقع الذاكرة نفسه.
تعريف اتحاد واستخدامه
تعريف اتحاد واستخدامه
يتم تعريف الاتحادات واستخدامها مثل البنى:
union Data d1;
إسناد القيم:
d1.i = 10;
يمكن لعضو واحد فقط تخزين قيمة في كل مرة.
مثال: استخدام اتحاد
مثال: استخدام اتحاد
يوضح هذا البرنامج كيفية تخزين الاتحاد للقيم في موقع ذاكرة مشترك.
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data d1;
d1.i = 10;
printf("Integer: %d\n", d1.i);
d1.f = 20.5;
printf("Float: %f\n", d1.f);
return 0;
}تخصيص الذاكرة في الاتحادات
تخصيص الذاكرة في الاتحادات
على عكس البنى، يحدَّد حجم الاتحاد بواسطة أكبر أعضائه.
مثال:
union Data {
int i; // 4 bytes
float f; // 4 bytes
char str[20]; // 20 bytes
};
حجم هذا الاتحاد هو 20 بايتًا، وليس 28.
الفرق بين Struct وUnion
الفرق بين Struct وUnion
البنية:
- لكل عضو موقع ذاكرة منفصل.
- الحجم هو مجموع أحجام جميع الأعضاء.
الاتحاد:
- يتشارك جميع الأعضاء موقع الذاكرة نفسه.
- يحدَّد الحجم بواسطة أكبر عضو.
مثال: مقارنة Struct وUnion
مثال: مقارنة Struct وUnion
يوضح هذا البرنامج حجم الذاكرة لبنية واتحاد.
#include <stdio.h>
struct StructExample {
int i;
float f;
char str[20];
};
union UnionExample {
int i;
float f;
char str[20];
};
int main() {
printf("Size of struct: %lu bytes\n", sizeof(struct StructExample));
printf("Size of union: %lu bytes\n", sizeof(union UnionExample));
return 0;
}متى تستخدم الاتحادات؟
متى تستخدم الاتحادات؟
تكون الاتحادات مفيدة عندما:
- تكون كفاءة الذاكرة أولوية.
- يحتاج متغير إلى تخزين أنواع مختلفة في أوقات مختلفة.
- تتعامل مع سجلات العتاد.
الملخص
الملخص
في هذا الدرس، تعلمت:
- كيفية عمل الاتحادات وكيفية توفيرها للذاكرة.
- الفرق بين البنى والاتحادات.
- كيفية استخدام الاتحادات في سيناريوهات عملية.
بعد ذلك، سنستكشف التعدادات في C!

الأسئلة الشائعة
هل درس «الاتحادات وكفاءة الذاكرة» مجاني؟
نعم — نص درس «الاتحادات وكفاءة الذاكرة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 3 دروس في المجموع.
ماذا ستتعلم في «الاتحادات وكفاءة الذاكرة»؟
افهموا الفروق بين struct وunion وكيف تحسّن الاتحادات استخدام الذاكرة تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟
لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.
كم من الوقت يستغرق درس «الاتحادات وكفاءة الذاكرة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟
نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف الهياكل واستخدامها
- الاتحادات وكفاءة الذاكرة
- التعدادات (enum)