I believe that the easiest way to get around the problem is to use a typedef: typedef int (*FUNCTION)(); then you can declare the function returning a pointer to function as: FUNCTION getroutine(name, table) This SHOULD work with all K&R C compilers