ثابت في البرمجة سي

Static C Programming



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

ثابت {نوع البيانات} {اسم متغير}







المتغيرات المحلية الثابتة

عندما يكون متغير في دالة ثابتًا ، يحتفظ المتغير بقيمته بين استدعاءات الوظيفة.



//Example1.c

#يشمل

intالمرح 1()
{

intعدد=0؛
عدد++ ؛
إرجاععدد؛
}

intالمرح 2()
{
ثابتة intعدد=0؛
عدد++ ؛
إرجاععدد؛
}

intالأساسية()
{
printf (إرجاع 'fun1 1st call:٪ dن'والمرح 1())؛
printf (إرجاع 'fun1 2nd call:٪ dنن'والمرح 1())؛

printf (إرجاع 'fun2 1st call:٪ dن'والمرح 2())؛
printf (إرجاع 'fun2 2nd call:٪ dن'والمرح 2())؛

إرجاع 0؛
}


في المثال 1.c لدينا وظيفتان: متعة 1 () و متعة 2 () . في متعة 1 () ، نعلن عن متغير واحد (عدد) ونقوم بتهيئته إلى 0. ثم نقوم بزيادة متغير العد وإرجاع القيمة الناتجة. استخدام الأساسية() ، نحن نتصل متعة 1 () مرتين ، وفي كل مرة ، يتم إرجاع القيمة 1 لأنه يتم مسح متغير العد عند استدعاء متعة 1 () قد اكتمل. في متعة 2 () أعلنا عن متغير العد كمتغير ثابت. لذلك ، يتم الحفاظ على قيمتها. استخدام الأساسية() ، نحن نتصل متعة 2 () مرتين: في المرة الأولى ، يتم إرجاع القيمة 1 ، وفي المرة الثانية ، يتم إرجاع القيمة 2.



المتغيرات العالمية الثابتة

يتصرف المتغير العام الثابت بنفس طريقة المتغيرات العامة الأخرى ، ولكن لا يمكن الوصول إليه من برنامج C آخر.





وظائف ثابتة

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

تهيئة المتغيرات الثابتة

إذا لم تتم تهيئة متغير ثابت بشكل صريح ، فسيتم تهيئته على أنه 0.



//Example2.c

#يشمل

intالأساسية()
{
ثابتة intأنا؛

printf ('قيمة i:٪ dن'وأنا)؛

إرجاع 0؛
}


في Example2.c ، أعلنا عن متغير ثابت i لم تتم تهيئته. ومع ذلك ، نظرًا لأن المتغير ثابت ، يتم تهيئته تلقائيًا إلى 0.

من المهم ملاحظة أنه يجب تهيئة المتغير الثابت بحرفية ثابتة ؛ لا يمكننا استخدام قيمة إرجاع دالة لتهيئة متغير ثابت.

// مثال 3.c

#يشمل

intالمرح 1()
{
إرجاع 5؛
}

intالأساسية()
{
ثابتة intأنا=المرح 1()؛
printf ('قيمة i:٪ dن'وأنا)؛
إرجاع 0؛
}


في Example3.c ، نحاول تهيئة متغير ثابت باستخدام قيمة الإرجاع متعة 1 () . ومع ذلك ، كما ترى ، يتم إرجاع خطأ عند تجميع الكود.

ملخص

عمر المتغير الثابت وعمر البرنامج متساويان.

إذا لم تتم تهيئة متغير ثابت ، فسيأخذ القيمة الافتراضية 0.

لا يمكن الوصول إلى متغير ثابت عالمي أو وظيفة ثابتة من برنامج آخر غير البرنامج الذي تم تعريفه فيه.