fork download
  1. #include <stdio.h>
  2.  
  3. void f (int w,...)
  4. {
  5. //
  6. // Traduce l'indirizzo di «w» nel puntatore «p».
  7. //
  8. char *p = (char *) &w;
  9. //
  10. // Sposta il puntatore all'inizio del secondo parametro.
  11. //
  12. p = p + sizeof w;
  13. //
  14. // Mostra il valore del primo e del secondo parametro.
  15. //
  16. printf ("w = %i; ", w);
  17. printf ("x = %Lf; ", *((long double *)p));
  18. //
  19. // Sposta il puntatore all'inizio del terzo parametro.
  20. //
  21. p = p + sizeof (long double);
  22. //
  23. // Mostra il terzo parametro.
  24. //
  25. printf ("y = %lli; ", *((long long int *)p));
  26. //
  27. // Sposta il puntatore all'inizio del quarto parametro.
  28. //
  29. p = p + sizeof (long long int);
  30. //
  31. // Mostra il quarto parametro.
  32. //
  33. printf ("z = %i\n", *((int *)p));
  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