HW17 A generic maximum function Write a function, gmax(), that is a generic function which finds the maximum of an array of any type. The function receives a pointer to an array, a count of the number of elements in the array, an int which is the size (in bytes) of the type of the elments in the array and a pointer to a function, int compar(void *v1,void *v2). The latter function compares two values of the appropriate type and returns a integer greater than 0 if v1 > v2, an integer less than 0 if v1 < v2, and 0 if v1 == v2. The generic function gmax() returns a pointer to the element of lowest index that is the maximum in the array. Examples of usage: int cmp2ints(void *,void *); int newa[100]; int *pmax; pmax = (int *)gmax(newa,100,sizeof(int),cmp2ints); fprintf(stdout,"Maximum = %d\n",*pmax); or int cmp2dbls(void *,void *); double dare[3000]; double *dmax; dmax = (double *)gmax(dare,3000,sizeof(double),cmp2dbls); fprintf(sidout,"maximum = %12.6lf\n",*dmax); To test your generic maximum function you will need to write a compar() function. See the examples in our textbook. However, you will only be submitting gmax() to toteach. What to submit to toteach: gmax.c and gmax.h