المؤشر لدالة (Function Pointer) هو مؤشر يشير لعنوان دالة في ذاكرة الحاسوب. وبالمقارنة بمؤشر يشير لقيمة بيان، يشير مؤشر الدالة لكود قابل للتنفيذ. وتتبع المؤشر لدالة يؤدي إلى الدالة المشار إليها، ويمكن تنفيذ هذه الدالة وتمرير قيم لها كما يحدث في نداء تقليدي. تنفيذ الدالة بهذه الطريقة يسمى تنفيذًا غير مباشر؛ لأن الدالة تُنفذ بصفة غير مباشرة عبر متغير ثان بدلًا من تنفيذها بمناداتها مباشرة. يمكن استخدام المؤشرات للدوال في تبسيط الكود؛ إذ توفر طريقة بسيطة لاختيار الدالة المطلوب تنفيذها بناءً على متغيرات في وقت التشغيل.
ميزة المؤشرات للدوال متوفرة بالجيل الثالث من لغات البرمجة مثل C،[1] ولغات البرمجة كائنية التوجه مثل D و++C.
مثال في لغة C
يوضح المثال التالي استخدام المؤشر لدالة في لغة C، المؤشر لدالة يحمل اسم addPtr ويشير لدالة تحمل اسم add.
#include <stdio.h> int (*addPtr)(int,int); int add(int,int); void main(void) { int sum; addPtr = add; sum = addPtr(4,6); printf("Sum is %d\n",sum); } int add(int x,int y) { return x+y; }
استشهادات
- Function Pointers in C - تصفح: نسخة محفوظة 22 أكتوبر 2017 على موقع واي باك مشين.