ثابت {نوع البيانات} {اسم متغير}
المتغيرات المحلية الثابتة
عندما يكون متغير في دالة ثابتًا ، يحتفظ المتغير بقيمته بين استدعاءات الوظيفة.
//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.
لا يمكن الوصول إلى متغير ثابت عالمي أو وظيفة ثابتة من برنامج آخر غير البرنامج الذي تم تعريفه فيه.