الهياكل في C

Structures C



في لغة C ، البنية عبارة عن متغير يحدده المستخدم يستخدم لتخزين مجموعة من المتغيرات ضمن كيان واحد. دعونا نستخدم تشبيهًا بسيطًا لشرح تنفيذ الهياكل وفائدتها في C.

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







لحل هذا ، يمكننا إنشاء هيكل. داخل الهيكل ، يمكننا تخزين جميع السمات المشتركة بين جميع المستخدمين ثم إضافة متغيرات فريدة لكل مستخدم.



دعونا نلقي نظرة على أمثلة مختلفة لنرى كيفية تنفيذ ذلك.



كيفية تحديد هيكل في لغة سي

لتحديد بنية في C ، نستخدم الكلمة الأساسية الهيكلية متبوعة باسم الهيكل. بعد الاسم ، لدينا زوج من الأقواس المتعرجة حيث نضيف الأعضاء.





ضع في اعتبارك بناء الجملة أدناه:

هيكلاسم الهيكل
{
/* البيانات */
اكتب member_name؛
اكتب member_name2؛
اكتب member_name3؛

...
نوعmember_nameN؛
}؛

يمكن أن يكون اسم البنية أي شيء تريده طالما أنها تلتزم باتفاقية التسمية الخاصة بلغة البرمجة C.



يمكننا تنفيذ نموذج هيكل لتشبيه المستخدم على النحو التالي:

هيكلالمستخدمين
{
شاراسم االمستخدم[عشرين]؛
شارالبريد الإلكتروني[225]؛
شارعنوان[خمسون]؛
intسن؛
منطقية مسجلة؛
}؛

كيفية إنشاء متغيرات الهيكل

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

يوضح المثال أدناه كيفية الإعلان عن متغيرات البنية كمتغيرات C قياسية.

هيكلالمستخدمين
{
شاراسم االمستخدم[عشرين]؛
شارالبريد الإلكتروني[225]؛
شارعنوان[خمسون]؛
intسن؛
منطقية مسجلة؛
}؛

intالأساسية(intأرجكو شار مقدار ثابت *أرجف[])
{
هيكلالمستخدمين user1والمستخدم 2والمستخدم 3
إرجاع 0؛
}

الطريقة الأخرى لإنشاء متغيرات الهيكل كما هو موضح أدناه:

هيكلالمستخدمين
{
شاراسم االمستخدم[عشرين]؛
شارالبريد الإلكتروني[225]؛
شارعنوان[خمسون]؛
intسن؛
منطقية مسجلة؛
}المستخدم 1والمستخدم 2والمستخدم 3؛

في هذا المثال ، نقوم بإنشائها أثناء إعلان الهيكل.

هيكل عضو مبدئي

لا يمكنك تهيئة أعضاء الهيكل أثناء الإنشاء حيث لا توجد ذاكرة مخصصة للنوع.

لتهيئة أعضاء الهيكل ، يمكنك استخدام الأقواس المتعرجة كما هو موضح أدناه:

هيكلالمستخدمين
{
شاراسم االمستخدم[عشرين]؛
شارالبريد الإلكتروني[225]؛
شارعنوان[خمسون]؛
intسن؛
منطقية مسجلة؛
}؛
intالأساسية(intأرجكو شار مقدار ثابت *أرجف[])
{
هيكلالمستخدمين user1= {'اسمي'و '[بريد إلكتروني محمي]'و 35و حقيقية}
إرجاع 0؛
}

أعضاء هيكل الوصول

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

هيكلالمستخدمين
{
شاراسم االمستخدم[عشرين]؛
شارالبريد الإلكتروني[225]؛
شارعنوان[خمسون]؛
intسن؛
منطقية مسجلة؛
}؛
intالأساسية(intأرجكو شار مقدار ثابت *أرجف[])
{
هيكلالمستخدمين user1= {'اسمي'و '[بريد إلكتروني محمي]'و 35و حقيقية}
المستخدم 1.البريد الإلكتروني = '[بريد إلكتروني محمي]'
إرجاع 0؛
}

في هذا المثال ، نصل إلى أعضاء user1.

الكلمة الأساسية Typedef

نستخدم الكلمة الأساسية typedef لإنشاء اسم مستعار لأنواع البيانات ، مما يجعل الكود أكثر قابلية للقراءة.

على سبيل المثال:

typedef هيكلالمستخدمين
{
شاراسم االمستخدم[عشرين]؛
شارالبريد الإلكتروني[225]؛
شارعنوان[خمسون]؛
intسن؛
منطقية مسجلة؛
}ش؛
intالأساسية(intأرجكو شار مقدار ثابت *أرجف[])
{
ش المستخدم 1= {'اسمي'و '[بريد إلكتروني محمي]'و 35و حقيقية}
المستخدم 1.مسجل = خاطئة
إرجاع 0؛
}

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

مؤشرات الهيكل

يمكنك أيضًا الحصول على مؤشر لهيكل. يتيح لك القيام بذلك الوصول إلى الأعضاء باستخدام عامل التشغيل ->.

على سبيل المثال:

typedef هيكلالمستخدمين
{
شاراسم االمستخدم[عشرين]؛
شارالبريد الإلكتروني[225]؛
شارعنوان[خمسون]؛
intسن؛
منطقية مسجلة؛
}ش؛
intالأساسية(intأرجكو شار مقدار ثابت *أرجف[])
{
ش المستخدم 1= {'اسمي'و '[بريد إلكتروني محمي]'و 35و حقيقية}

// مؤشر إلى هيكل آخر
ش*user_ptr= &المستخدم 1
user_ptr->اسم االمستخدم= 'اسم المستخدم'
إرجاع 0؛
}

استنتاج

يغطي هذا الدليل أساسيات العمل مع الهياكل في لغة البرمجة سي.

شكرا لقرائتك!