النماذج الأولية للدوال
جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 51 من 63.
في لغة C، يمكننا التصريح عن دالة قبل استخدامها. يخبر نموذج الدالة (function prototype) المترجم (compiler) عن اسم الدالة، ومعاملاتها، ونوع الإرجاع الخاص بها قبل تعريف الدالة الفعلي.
أنشئ نموذجاً أولياً لدالة تقوم بجمع عددين صحيحين:
int add(int a, int b);ثم قم بتعريف الدالة:
int add(int a, int b) {
return a + b;
}عادةً ما يكون النموذج الأولي (prototype) فوق main، بينما تكون الدالة نفسها أسفل main، لكي يبدو الكود أكثر تنظيماً.
الآن يمكنك استخدام هذه الدالة في main:
int main() {
int result = add(5, 3);
printf("%d", result);
return 0;
}بدون النموذج الأولي (prototype)، إذا قمت باستدعاء الدالة قبل تعريفها، فستحصل على خطأ في المترجم (compiler error).
التحدي
سهلأنشئ برنامجاً يقوم بما يلي:
- يعلن عن نموذج أولي لدالة باسم
calculateAreaتأخذ عددين صحيحين (length و width) وتعيد عدداً صحيحاً. - ينفذ الدالة لحساب وإرجاع المساحة (length × width).
- في الدالة main، يحصل على عددين صحيحين من المستخدم، ويستدعي
calculateArea، ويطبع النتيجة.
ورقة مرجعية
يعلن النموذج الأولي للدالة (function prototype) عن الدالة قبل تعريفها، حيث يخبر المترجم باسم الدالة، ومعاملاتها، ونوع القيمة المرجعة:
int add(int a, int b);ثم قم بتعريف الدالة:
int add(int a, int b) {
return a + b;
}عادةً ما يتم وضع النموذج الأولي فوق الدالة main، بينما يوضع تعريف الدالة أسفل main:
int add(int a, int b); // النموذج الأولي
int main() {
int result = add(5, 3);
printf("%d", result);
return 0;
}
int add(int a, int b) { // التعريف
return a + b;
}بدون النموذج الأولي، سيؤدي استدعاء الدالة قبل تعريفها إلى حدوث خطأ في المترجم (compiler error).
جرّب بنفسك
#include <stdio.h>
// اكتب النموذج الأولي للدالة هنا
int main() {
// صرح عن المتغيرات واقرأها
// استدعِ الدالة الخاصة بك واطبع النتيجة هنا
return 0;
}
// قم بتنفيذ الدالة الخاصة بك هنايتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4تدفق التحكم
جملة Ifجملة If - Elseجملة Else-Ifجملة Switch Caseالعامل الشرطي الثلاثيتحدي المراجعةجمل If - Else المتداخلة7الدوال
التصريح عن دالةأنواع الإرجاعالمعاملاتتحدي المراجعة #1أساسيات الاستدعاء الذاتيالنماذج الأولية للدوالتحدي المراجعة #22المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعة