fork download
  1. #include <stdio.h>
  2. #include <stdarg.h>
  3.  
  4. void
  5. f (int w,...)
  6. {
  7. long double x; // Dichiara le variabili che servono
  8. long long int y; // a contenere gli argomenti per i
  9. int z; // quali mancano i parametri formali.
  10.  
  11. va_list ap; // Dichiara il puntatore agli
  12. // argomenti.
  13.  
  14. va_start (ap, w); // Posiziona il puntatore dopo la
  15. // fine di «w».
  16.  
  17. x = va_arg (ap, long double); // Estrae l'argomento
  18. // successivo portando
  19. // avanti il puntatore
  20. // di conseguenza.
  21.  
  22. printf ("w = %i; ", w); // Mostra il valore del
  23. // primo parametro.
  24. printf ("x = %Lf; ", x); // Mostra il valore
  25. // dell'argomento successivo.
  26.  
  27. y = va_arg (ap, long long int); // Estrapola e mostra
  28. printf ("y = %lli; ", y); // il terzo argomento.
  29.  
  30. z = va_arg (ap, int); // Estrapola e mostra
  31. printf ("z = %i\n", z); // il quarto argomento.
  32.  
  33. va_end (ap); // Conclude la scansione.
  34.  
  35. return;
  36. }
  37.  
  38. int main (int argc, char *argv[])
  39. {
  40. f (10, (long double)12.34, (long long int)13, 14);
  41. return 0;
  42. }
Success #stdin #stdout 0.02s 1720KB
stdin
Standard input is empty
stdout
w = 10; x = 12.340000; y = 13; z = 14