Accueil    Développement    LEX & YACC    Outils    Liens Web  
Développement
CRYPTO par DES
FSMG automate à état fini
FTools manipulation de fichiers
getHTTP à la quête du web
SrvHTTP mini serveur HTTP
toUnix suppression du CR
Trucs & Astuces
» function (...)C
» les BSTR dans les ActiveXC
» les VARIANTSC
function (...) 

Les exemples qui suivent présentent quelques méthodes pour passer des paramètres de manières optionels. Ainsi il est possible, pour une fonction d’avoir des comportements différents en fonction des paramètres passés.

1er exemple, utilisation de la fonction vsprintf.
void Write(char *fmt, ...)
{
    static char tmp[10000];
    vsprintf(tmp, fmt, (void *)(&fmt + 1));
    fprintf(stderr, "%s", tmp);
}

2ème exemple, plus complexe avec l'utilisation de la liste des arguments.
#include <stdio.h>
#include <stdarg.h>


void Menu (char *tt, ...)
{
    va_list lstMenu;
    char    *txt = (char *)1;

    va_start (lstMenu, tt);
    while (txt != NULL)
    {
        txt = (char *)va_arg(lstMenu, long);
        printf ("%sn", txt);
    }
    va_end (lstMenu);
}

void main (void)
{
    Menu ("tt", "titre 1", "titre 2", "titre 3");
}

Copyright 2000-2009 BUCHARD@com