In Java, two functions in the same namespace may share the same name if their parameter types are sufficiently different. In C, this is simply not the case, and all function names must be unique.

void myfunc(int a)
{
  /* . . . */
}

void myfunc(float b) /* error: myfunc already defined */
{
  /* . . . */
}