Имена функций могут быть перегружены в пределах одной области видимости. Компилятор отличает одну функцию от другой по сигнатуре. Сигнатура задается числом, порядком следования и типами ее параметров.
//Программа 5.
#include <stdio.h>
#include <string.h>
int noName (int first)
{
return first*first;
}
int noName (unsigned first)
{
return first*first;
}
char noName (char first)
{
return first*first;
}
int noName (int first,char *second)
{
return first*strlen(second);
}
float noName (float r)
{
return r*r;
}
double noName (double r)
{
return r*r;
}
void main(void)
{
printf("%d\n", noName(4));
printf("%d\n", noName((unsigned)4));
printf("%c\n", noName(‘c’));
printf("%d\n", noName(4,"cлово"));
printf("%0.2f\n", noName((float)1.2));
printf("%0.2lf\n", noName((double)1.2));
}