begin process at 2008 07 19 02:20:43
1 212 688 membres
27 nouveaux aujourd'hui
14 165 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Surcharge de fonction en C... [ Divers / Divers ] (vinc1008881)

Surcharge de fonction en C... le 09/03/2008 13:14:05

vinc1008881
Bonjour à tous,

je voudrais surcharger des fonctions en C comme on le fait en C++. Seulement le compilateur refuse (normal) et je voudrais savoir s'il n'existe pas des moyens détournés pour faire celà (pointeur sur fonction ? macro ?)

J'utilise gcc comme complilo, merci à l'avance pour vos réponses.

Cordialement


Re : Surcharge de fonction en C... le 09/03/2008 18:52:49

SAKingdom
Membre Club
Non. C'est le compilateur C++ qui redirige, à partir de la signature de la fonction appelée, vers la bonne fonction. Comme un compilateur C ne connaît pas ce qu'est la surcharge, il est donc impossible d'appliquer ce principe.

Un moyen serait de passer un flag à une fonction prenant un nombre indéfini d'argument, mais ce n'est pas du tout le même principe.

Exemple:

void __cdecl toto (int flag, ...)
{
    va_list l;

    va_start(l, flag);

    switch(flag) {
       case 1: {
          int i = va_arg(l, int);
          printf("%d\n", i);
       } break;
       case 2: {
          char *c = va_arg(l, char*);
          int i = va_arg(l, int);
          printf("%s -> %d\n", c, i);
       } break;
    }
}
         

C++ (@++)



Classé sous : fonction, surcharge

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS