IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Propagation de ". . ." d'un printf sans ##__VA_ARGS__


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut Propagation de ". . ." d'un printf sans ##__VA_ARGS__
    Bonjour,

    J'ai besoin de faire l'appel d'une fonction printf(char format, ...) générique qui va faire le choix d'appeler monPrintf1(char format, ...) ou monPrintf2(char format, ...)

    Mon problème réside dans la propagation des arguments variable !
    Je ne peux pas utiliser la directive de préprocesseur suivante ##__VA_ARGS__ car l'appel de monPrintf1/2 ce fait par l’intermédiaire d'un pointeur de fonctions.

    Merci de votre aide.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par boutboutnico Voir le message
    J'ai besoin de faire l'appel d'une fonction printf(char format, ...) générique qui va faire le choix d'appeler monPrintf1(char format, ...) ou monPrintf2(char format, ...)
    Tu ne peux pas faire comme cela, par contre, c'est possible de le faire autrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void printf_generique(char *format, ...)
    {
       va_list arg;
       va_start(arg, format);
       if(...)
          printf_specifique_1(format, arg);
       else
          printf_specifique_2(format, arg);
       va_end(arg);
    }
     
    void printf_specifique_1(char *format, va_list arg)
    {
       ...
    }
     
    void printf_specifique_2(char *format, va_list arg)
    {
       ...
    }
    et ensuite, il faut utiliser les fonction printf et dérivées qui utilisent les paramètres du type va_list (genre vprintf, vsprintf, ...)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut
    Ok merci pour ta réponse, ca répond parfaitement a mon problème.
    Je vais me renseigner sur vprintf car je ne connais pas sa subtilité.

Discussions similaires

  1. printf sans stdarg.h
    Par lwhite dans le forum Débuter
    Réponses: 4
    Dernier message: 06/11/2008, 18h14
  2. Problème de printf sans retour chariot \n
    Par Acivurt dans le forum Débuter
    Réponses: 8
    Dernier message: 24/07/2007, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo