My background and instincts tell me I should always create a tighter and more explicit interface to a function by requiring parameters like this:
bool someFunc(int param1, int param2, char param3, float param4) {
...
}
or requiring an object (struct or class) like:
class someObject {
...
int p1;
int p2;
char c1;
float p4;
}
I have been told by my boss that I should be using something like:
bool someFunc(void *params[], int size) {
...
}
because it creates more extensible (you can iterate over parameters this way) and faster code.
I am only interested in improving my abilities, but my instincts go against this method. Is he right?