التصريح المسبق (Prototype)
أعلن الدالة قبل main أو ضع نموذجها في الأعلى:
int add(int a, int b); // النموذج
int main() {
printf("%d\n", add(2, 3));
return 0;
}
int add(int a, int b) { // التعريف
return a + b;
}
التمرير بالقيمة
C تمرّر نسخة من المتغيّر افتراضيًا، فالتعديل داخل الدالة لا يؤثّر على الأصل. لتعديل الأصل مرّر مؤشّرًا:
void doubleIt(int *n) {
*n *= 2;
}
int x = 5;
doubleIt(&x); // x الآن 10
النطاق (Scope)
المتغيّر المعرّف داخل دالة محلّي لها فقط. المتغيّرات العامة تُعرَّف خارج كل الدوال.
الاستدعاء الذاتي (Recursion)
int factorial(int n) {
if (n <= 1) return 1; // حالة التوقّف
return n * factorial(n - 1);
}
⚠️ كل استدعاء ذاتي يحتاج حالة توقّف، وإلا حدث طفحان للمكدّس (stack overflow).
🎯 التالي: المؤشّرات المتقدّمة.