3 votes

La surcharge de fonctions fonctionne-t-elle en C ?

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.

9voto

Philipp Points 21479

Non, le C n'a pas de surcharge de fonctions.

3voto

Andy Dent Points 9852

La surcharge de fonctions est l'une des caractéristiques supplémentaires du C++ qui sont souvent décrites comme "le C++ comme un meilleur C".

Cela n'a rien à voir avec les caractéristiques orientées objet du C++.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X