Regardez l'exemple ci-dessous qui montre les étapes 2 à 6. Fonction myprintf accepte une chaîne de format qui spécifie le type et la position de chaque argument. Suite à la chaîne de format est la liste des arguments. La fonction imprime les arguments. Pour plus de simplicité, il peut seul processus int, float et l'omble:
// Déclaration
myprintf vide (char le format, ...) -
// Defintion
myprintf vide (char le format, ...) {
va_list VL-
int i-
va_start (vl, args) -
for (i = 0- args [i]! = ' 0'- ++ i) {
union any_t {
int i-
flotter f-
omble c-
} Anywhere
if (args [i] == 'i') {
any.i = va_arg (vl, int) -
printf ( "% I n", Any.i) -
} Else
if (args [i] == 'f') {
any.f = va_arg (vl, float) -
printf ( "% F n", Any.f) -
} Else
if (args [i] == 'c') {
any.c = va_arg (vl, char) -
printf ( "% C n", Any.c) -
}
else {
jeter SomeException-
}
va_end (vl) -
}