Duplicatas possibles :
surcharge des fonctions en C
Le C supporte-t-il la surcharge ?
Quelqu'un peut-il expliquer si la surcharge de fonctions fonctionne en C ?
J'ai essayé ça et ça n'a pas marché :
#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");
}
Le compilateur C gcc dit :
overload.c:8: error: conflicting types for 'f'
overload.c:3: error: previous definition of 'f' was here
Cependant, si je compile le même code en C++, il fonctionne.
Quelqu'un peut-il l'expliquer ?
Merci, Boda Cydo.