وظائف ثابتة في لغة الكمبيوتر سي

Wzayf Thabtt Fy Lght Alkmbywtr Sy



'static' هي كلمة محجوزة في لغة الكمبيوتر ، C. وهي عبارة عن محدد فئة تخزين يمكن استخدامها مع الوظائف. يمكن أن يحتوي برنامج C على أكثر من ملف. يجب أن يحتوي ملف واحد فقط على وظيفة C main (). في هذه المقالة ، يتم النظر في ملفين فقط: الملف الذي يحتوي على وظيفة C main () والتي تسمى mainFile.c والملف الآخر بدون الوظيفة الرئيسية التي تسمى otherFile.c

الوظيفة العالمية

الوظيفة العامة هي وظيفة محددة في ملف C قبل الدالة main (). حتى الوظيفة الرئيسية () هي وظيفة عامة ولكن الوظيفة الرئيسية () ليست هي التركيز في هذه المقالة. في اللغة C ، عادةً ما تكون الوظائف المعرفة بواسطة المبرمج وظائف عامة ويشار إليها ببساطة باسم الوظائف.

يمكن استدعاء دالة عمومية في أي نطاق في ملفها. من أجل رؤية دالة عامة في ملف مختلف ، يجب التصريح عن نموذجها الأولي في هذا الملف المختلف (انظر أدناه). لمنع ظهور وظيفة محددة في ملف واحد في ملف مختلف ، اسبق التعريف بـ كلمة محجوزة ثابتة. مع ذلك ، ستكون الوظيفة الثابتة وظيفة عامة فقط في ملفها الخاص ولن يتم عرضها في ملف آخر.







لذلك ، يمكن رؤية الوظيفة العامة المعرفة في otherFile.c في أي مكان في otherFile.c. لكي يتم عرضه في mainFile.c ، يجب التصريح عن النموذج الأولي الخاص به في mainFile.c (انظر أدناه.) لا ينبغي أن يسبق تعريفه في otherFile.c بكلمة 'ثابت'. لمنع ظهوره في mainFile.c ، يجب جعل تعريفه في otherFile.c ثابتًا إزالة فاصلة من خلال تسبقها بكلمة ثابتة.



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



يمكن تجميع الملفات ، mainFile.c و otherFile.c ، باستخدام أمر Bash Terminal التالي:





gcc mainFile. ج ملف آخر. ج - أن درجة الحرارة. إملف تنفيذى

temp.exe هو اسم ملف التنفيذ الفردي الناتج.

محتوى المادة



- مقدمة - انظر أعلاه

- نموذج وظيفة C

- الوظيفة العالمية

- وظيفة ثابتة مناسبة

- استنتاج

نموذج الوظيفة C

ضع في اعتبارك تعريف الوظيفة العامة:

شار * fn1 ( شار * ستريب ) {
إرجاع ستريب ؛
}

النموذج الأولي لهذه الوظيفة هو:

شار * fn1 ( شار * ستريب ) ؛

إنه توقيع الوظيفة الذي ينتهي بفاصلة منقوطة.

الآن ، دع محتوى otherFile.c يكون:

شار * fn1 ( شار * ستريب ) {

إرجاع ستريب ؛

}

افترض أن الملف ، otherFile.c له فقط تعريف الدالة العامة ، fn1 (). الآن دع محتوى الملف mainFile.c يكون:

# تضمين

شار * fn1 ( شار * ستريب ) ؛

int رئيسي ( )
{
شار * شارع = fn1 ( 'رأيت' ) ؛
printf ( '٪س ' و شارع ) ؛

إرجاع 0 ؛
}

يبدأ بإدراج رأس (مكتبة). ويتبع ذلك إعلان النموذج الأولي للوظيفة fn () للملف الآخر.

لا يحتوي هذا الملف الرئيسي على تعريف لأي دالة عامة بخلاف الوظيفة الافتراضية main (). في الوظيفة الرئيسية ، تستدعي العبارة الأولى الوظيفة fn1 () المحددة في الملف الآخر. لن يكون هذا الاستدعاء فعالاً إذا لم يتم التصريح عن النموذج الأولي لـ fn1 () في هذا الملف ، mainFile.c.

إذا قام القارئ بترميز الملفين أعلاه ، فيمكنه تجميع البرنامج في ملف واحد قابل للتنفيذ باستخدام الأمر التالي:

gcc mainFile. ج ملف آخر. ج - أن درجة الحرارة. إملف تنفيذى

الضغط على مفتاح Enter في نهاية السطر. يجب أن يكون الناتج ، 'مرئي'.

الوظيفة العالمية

يمكن تعديل ملف mainFile.c على النحو التالي:

# تضمين

شار * fn1 ( شار * ستريب ) ؛

شار * الجبهة الوطنية ( شار * شارع ) {
إرجاع شارع ؛
}

int رئيسي ( )
{
شار * شارع 1 = fn1 ( 'رأيت' ) ؛
printf ( '٪س ' و شارع 1 ) ؛
شار * str2 = الجبهة الوطنية ( 'رؤية عالمية في ملفها'. ) ؛
printf ( '٪س ' و str2 ) ؛
إرجاع 0 ؛
}

الآن ، هناك وظيفتان عالميتان في الملف ، mainFile.c. أسماء الوظائف هي fn () و main (). dfn () هي دالة عالمية. لقد تم رؤيته في النطاق المحلي للوظيفة الرئيسية () ، من خلال استدعاء. في اللغة C ، يُشار إلى الوظيفة العامة في النطاق العالمي ، مثل fn () ، ببساطة على أنها دالة. أيضًا ، يُشار إلى الوظيفة العامة ، fn1 () في الملف ، otherFile.c ببساطة ، كدالة.

إذا تمت إعادة تجميع الملفين في temp.exe ، فسيكون الإخراج:

رأيت

رؤية عالمية في ملفها.

ملاحظة: يمكن أيضًا عرض تعريف الدالة لـ fn () في الملف الآخر ، otherFile.c. لتحقيق ذلك يكون إعلان النموذج الأولي الخاص به في otherFile.c ، على النحو التالي:

شار * الجبهة الوطنية ( شار * شارع ) ؛

تنتهي بفاصلة منقوطة. يُترك هذا النشاط كتمرين للقارئ.

وظيفة ثابتة مناسبة

من المناقشة أعلاه ، يمكن رؤية الوظيفة في أي نطاق (في أي مكان) في ملفها. يمكن أيضًا رؤيته في ملف مختلف ، لنفس البرنامج ، إذا تم الإعلان عن النموذج الأولي الخاص به هناك. لمنع تعريف الملف من الظهور في ملف مختلف ، اجعل التعريف ثابتًا من خلال تسبقه بالكلمة المحجوزة ، static. حتى إذا تم الإعلان عن النموذج الأولي الخاص به في ملف مختلف ، فلن يتم عرضه في الملف الآخر. لن يتم تجميع ملفات البرنامج. لتوضيح ذلك ، اجعل محتوى الملف ، otherFile.c:

ثابتة شار * fn1 ( شار * ستريب ) {

إرجاع ستريب ؛

}

هذا هو نفس المحتوى في الملف ، otherFile.c ، كما كان من قبل ، ولكن مع الكلمة السابقة المحجوزة ، static. يظل محتوى ملف mainFile.c كما هو. إذا جرت محاولة تجميع ملفات البرنامج باستخدام الأمر ،

gcc mainFile. ج ملف آخر. ج - أن درجة الحرارة. إملف تنفيذى

سيصدر المترجم رسالة خطأ ، مما يعني أن البرنامج لم يترجم. حتى إذا كان إعلان النموذج الأولي في ملف مختلف مسبوقًا أيضًا بـ static ، فلن يتم تجميع ملفات البرنامج.

استنتاج

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