Possible Duplicates:
function overloading in C
Does C support overloading ?
Can anyone explain if function overloading work in C?
I tried this and it didn't work:
#include <stdio.h>
int f(int val) {
printf("f int\n");
return 5;
}
int f(char *val) {
printf("f char *\n");
return 6;
}
int main() {
f(5);
f("moo");
}
The gcc C compiler says:
overload.c:8: error: conflicting types for 'f'
overload.c:3: error: previous definition of 'f' was here
However, if I compile the same code in C++, it works.
Can anyone explain it?
Thanks, Boda Cydo.