char (*pfnStringSearch)(const char *, const char *); ... pfnStringSearch = ((iCaseSensitive)?strcasestr:strstr); produces warning: assignment from incompatible pointer type error: invalid type argument of ‘unary *’ The two subroutines are defined as char *strstr(const char *haystack, const char *needle); char *strcasestr(const char *haystack, const char *needle);