Fonction avec nombre d'arguments variables
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Fonction avec nombre d'arguments variables



  1. #1
    antoine6

    Fonction avec nombre d'arguments variables


    ------

    Bonjour,

    Je suis en train d'écrire des fonctions en C pour gérer un afficheur LCD sous un PIC (PIC32, compilateur C32).

    Comment je peut faire pour créer une seule fonction, donc le nombre de variables dépendrai de la valeur du premier. Par exemple:

    Code:
    DRAW(RECTANGLE, x1, y1, x2, y2, attr1, attr2);
    DRAW(SAVE, page);
    DRAW(LOAD, page, x1, y1, x2, y2, x, y);
    où les x et y sont les coordonnées, et les attributs les différentes options (contour ou plein, couleur, ...). Pour le moment j'ai mis autant d'arguments qu'il en faut au maximum, mais ca simplifierai vachement la chose si j'étais pas obligé de rajouter des arguments inutiles.

    J'ai pensé chercher le code du printf où on peut rajouter des arguments à volonté mais le fichier .c n'est pas disponible (seulement le .h avec les déclarations)

    quelqu'un aurai une solution?

    merci =)

    PS: je sais pas vraiment si mon post est plus approprié ici ou dans la partie électronique)

    -----

  2. #2
    yoda1234

    Re : Fonction avec nombre d'arguments variables

    Citation Envoyé par antoine6 Voir le message
    PS: je sais pas vraiment si mon post est plus approprié ici ou dans la partie électronique)
    Je pense que tu auras plus de réponses dans cette partie du forum, je me suis donc permis de déplacer ton message.
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  3. #3
    Jack
    Modérateur

    Re : Fonction avec nombre d'arguments variables

    quelqu'un aurai une solution?
    oui

    Comme tu l'as remarqué, c'est le principe de la fonction printf. Il faut gérer une liste d'arguments en l'initialisant avec va_start. On la ferme avec va_end et on va chercher les arguments avec va_arg.

    Dans ta fonction, il faudra au moins un paramètre fixe.

    Je te laisse le soin de chercher la syntaxe exacte maintenant que tu as les mots clés qu'il faut. N'hésite pas à signaler si tu rencontres des difficultés.

    A+

  4. #4
    Seb.26

    Re : Fonction avec nombre d'arguments variables

    Comme dit par Jack, la méthode "propre", c'est les va_start & co ...

    Maintenant, avec quelques #define, tu dois pouvoir faire 'n' fonctions et définir les paramètre non utilisés aux valeurs par défaut ...

    D'ailleurs, pourquoi tu veux une seule fonction ??? ...

    En général, on fait des drawRectangle() ... drawText() ... drawBitmap() ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  5. A voir en vidéo sur Futura
  6. #5
    antoine6

    Re : Fonction avec nombre d'arguments variables

    J'ai trouvé pas mal d'infos sur va_start, je vais essayer de mettre ca en place, en cas de probleme je reviens ici =)

    Citation Envoyé par Seb.26 Voir le message
    D'ailleurs, pourquoi tu veux une seule fonction ??? ...

    En général, on fait des drawRectangle() ... drawText() ... drawBitmap() ...
    Ca fait plus propre je trouve et ca ma fait apprendre une technique que j'avais jamais vue

    merci pour les réponses, bonne soirée

Discussions similaires

  1. statistique : reduction du nombre de variables explicatives
    Par inviteb6ed0931 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 12/02/2010, 09h34
  2. fonction à 2 variables
    Par invite5e819cf8 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 19/10/2009, 17h54
  3. Influence des variables d'une fonction à 2 variables
    Par invitee2a62e92 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 18/07/2008, 01h54
  4. fonction à 2 variables
    Par inviteca8aab0b dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 18/06/2007, 16h15
  5. Fonction à 2 variables
    Par invitec526837a dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 22/09/2006, 22h52
Découvrez nos comparatifs produits sur l'informatique et les technologies.