C++ compilers allow a feature known as function overloading, which means that more than one function (in the same scope) can share the same name -- as long as they have different parameter lists.
Note: This is specifically a newer C++ feature, but this means that some compiler environments that support both C and C++ may support this feature for C programs, as well.
Officially, this is a C++ feature.
int Process(double num); // function 1 int Process(char letter); // function 2 int Process(double num, int position); // function 3
int x; double y = 12.34; x = Process(3.45, 12); // invokes function 3 x = Process('f'); // invokes function 2 x = Process(y); // invokes function 1
void DoTask(int x, double y); void DoTask(double a, int b);
DoTask(4, 5.9); // calls function 1 DoTask(10.4, 3); // calls function 2 DoTask(1, 2); // ambiguous due to type conversion (int -> double)