Fonksiyon işaretçisi, bir fonksiyonu bildirim referansını kullanarak çağırabilmemizi sağlar. Yani, bir fonksiyonu parametrik olarak çalıştırma imkanımız olur.
void (* func_name) ( ) = function_name;
Bunun bendeki en sık kullanma amacı Fonksiyon Listesi hazırlamak:
int funcA(void);
int funcB(void);
int funcC(void);
int funcD(void);
int funcE(void);
int funcF(void);
int (* functionList[]) () =
{
funcA, funcB, funcC, funcD, funcE, funcF
};
// bu bildirimin cümle içinde kullanımı şöyle:
ret_val = functionList[list_index]();
Her ne kadar bir kaynak dosyası içinde kullanılacak bir fonksiyon için deklarasyon yazmak zorunda olmasak da, fonksiyon listesi hazırlarken deklarasyon yazmalıyız. Deklarasyon bize yürütme kısmından önce o fonksiyona dair işaretçiyi kullanma şansı verir. Bu şekilde liste bildirimi yaparken liste elemanlarını sabit olarak kullanabiliriz.