Functions should have as few args as possible; at max 3. "More than 3 is very questionable and should be avoided with prejudice"
// chances are if you need this many arguments the function is too
// complex and should be broken down
void myLongComplexFunction(int arg1, int arg2, char *pointer1, bool ifPointer1,
char *pointer2, MY_ENUM functionCondition1) {
...
}