Is it possible to pass a function pointer as an argument to a function in C?
If so, how would I declare and define a function which takes a function pointer as an argument?
Is it possible to pass a function pointer as an argument to a function in C?
If so, how would I declare and define a function which takes a function pointer as an argument?
As said by other answers, you can do it as in
void qsort(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *));
However, there is one special case for declaring an argument of function pointer type: if an argument has the function type, it will be converted to a pointer to the function type, just like arrays are converted to pointers in parameter lists, so the former can also be written as
void qsort(void *base, size_t nmemb, size_t size,
int compar(const void *, const void *));
Naturally this applies to only parameters, as outside a parameter list int compar(const void *, const void *); would declare a function.