لغة سي من اللغات المرنة جدا والتي تعطيك امكانيات لا نهائية في تطويرها. اردت عرض هذا التلميح للمبتدئين والذي قد يحتاجونه وهو ارسال دالة الى دالة!
فكما يعلم الكثير من المبرمجين، تستطيع ارسال قيم الى اي دالة تسمى بـ Arguments وتختلف انواع هذه القيم من تصريح Declaration دالة الى اخرى. ما اريد ذكره هنا، انك تستطيع ارسال دالة الى دالة اخرى. تستخدم هذه الطريقة في العادة مع القوائم المرتبطة Linked List وهي توفر عليك تكرار كتابة الـ Arguments>
هذا المثال مبسط جدا جدا صممت فيها دالة MyFun التي تستقبل قيمتين الاولى هي متغير من نوع Int والثانية دالة من نوع void الق نظرة عليه حتى تفهم هذه الفكرة.
#include
void Power (int *iNum)
{
*iNum = *iNum * *iNum;
}
void Abs (int *iNum)
{
if (*iNum < 0)
*iNum = *iNum * -1;
}
int MyFun ( int iNum, void TheFun (int *iNum) )
{
TheFun (&iNum);
return iNum;
}
void main ()
{
cout << MyFun (10, Power) << "n";
cout << MyFun (-5, Abs) << "n";
}*بعيدا عن الموضوع:
نتمنى مشاركتكم في الاستفتاء في الصفحة الرئيسية لموقعي :