I'd need to know more about your program. What are these functions
used for?
The functions are mainly used for getting and setting parameters in a
struct (size, position, text)
typedef void* (*Fptr)(); /* ptr-to-function returning void* */
Fptr function [FUNC_MAX];
Thx i like the typedef it makes it way more readable.
I have a slight preference for writing it this way:
typedef void *Function();
Function *function[FUNC_MAX];
so that you can see you have an array of pointer. Of course, what
else could it be with functions, but I prefer not to hide the pointer
in the typedef (unless there is good reason).
As to your original question... Omitting the void in the function
type is more descriptive since it means "an unspecified number of
parameters" where (void) means "no parameters". However, if all the
functions actually have the same type then you should use whatever
that type really is.
If the functions are of different types, then you have to convert the
pointers at the time of the function call and it does not matter
(except for readability) what type the pointer has to start with. A
function pointer can be convert to any other function pointer type.
The key issue here is what do the calls look like? If they all
involve a conversion (usually a cast) to a function pointer type that
matches the definition of the function being called, then all is well
and type you use above hardly matters. If the calls don't involve a
conversion, then the function definitions must match that of the
pointer. Calling functions /defined/ using the old non-prototype
syntax is fraught with subtle problems, so maybe that is what your
senior programmer is trying to avoid.