Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الإعلان عن Struct

جزء من قسم المنطق وتدفق التنفيذ في رحلة C على Coddy. الدرس 39 من 63.

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

البنية الأساسية لإعلان struct هي:

struct StructureName {
    datatype member1;
    datatype member2;
    // ... المزيد من الأعضاء
};

إليك كيفية عمل كل جزء: تبدأ بالكلمة المفتاحية struct، متبوعةً باسم للهيكل، ثم تسرد جميع members داخل الأقواس المعقوفة. يتم التصريح عن كل عضو تمامًا مثل المتغير العادي، مع نوع البيانات والاسم الخاص به. لا تنسَ الفاصلة المنقوطة بعد القوس المعقوف الختامي!

على سبيل المثال، لإنشاء بنية تمثّل نقطة في فضاء ثنائي الأبعاد:

struct Point {
    int x;
    int y;
};

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

challenge icon

التحدي

سهل

أنشئ برنامجًا بلغة C يعرّف struct لتمثيل كتاب في نظام مكتبة. يجب أن يقوم برنامجك بما يلي:

  1. عرّف struct باسم Book يحتوي على الأعضاء التالية:
    • عددًا صحيحًا id لتخزين رقم تعريف الكتاب
    • مصفوفة محارف title بحجم 50 لتخزين عنوان الكتاب
    • عددًا صحيحًا pages لتخزين عدد الصفحات
    • عددًا عشريًا price لتخزين سعر الكتاب
  2. بعد تعريف الـ struct، اطبع رسالة تأكيد: Book struct defined successfully!
  3. اطبع حجم الـ Book struct بالبايت باستخدام sizeof() بالتنسيق: Size of Book struct: [size] bytes
  4. اطبع حجم كل عضو بشكل منفصل:
    • Size of id: [size] bytes
    • Size of title: [size] bytes
    • Size of pages: [size] bytes
    • Size of price: [size] bytes

يتحقق هذا التحدي من فهمك لصياغة تعريف struct، بما في ذلك الاستخدام الصحيح للكلمة المفتاحية struct، وتعريف الأعضاء باستخدام أنواع البيانات المناسبة، والفاصلة المنقوطة بعد القوس المتعرج الختامي. وستستكشف أيضًا كيفية تخصيص C للذاكرة لأعضاء struct باستخدام العامل sizeof().

تذكّر أن قيم الحجم الدقيقة قد تختلف تبعًا لبنية نظامك، لكن صياغة تعريف struct يجب أن تكون صحيحة حتى يُترجم البرنامج ويعمل بنجاح.

جرّب بنفسك

#include <stdio.h>

int main() {
    // TODO: عرّف هيكل Book الخاص بك هنا
    
    
    // اطبع رسالة التأكيد
    printf("Book struct defined successfully!\n");
    
    // TODO: اطبع حجم هيكل Book وأعضائه
    
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم C عبر الإنترنت