[ create a new paste ] login | about

Link: http://codepad.org/22g6f9rU    [ raw code | output | fork ]

appunti2 - C, pasted on Apr 30:
#include <stdio.h>
#include <stdarg.h>

void f (int w,...)
{
  //
  // Dichiara le variabili che servono a contenere
  // gli argomenti privi di parametri formali.
  //
  long double x;
  long long int y;
  int z;
  //
  // Dichiara il puntatore ai parametri.
  //
  va_list ap;
  //
  // Posiziona il puntatore dopo il primo parametro,
  // ovvero dopo l'ultimo parametro dichiarato
  // esplicitamente.
  //
  va_start (ap, w);
  //
  // Estrapola il secondo argomento della chiamata (portando
  // avanti il puntatore di conseguenza.
  //
  x = va_arg (ap, long double);
  //
  // Mostra il valore del primo e del secondo argomento
  // ottenuto dalla chiamata della funzione.
  //
  printf ("w = %i; ", w);
  printf ("x = %Lf; ", x);
  //
  // Estrapola il terzo argomento.
  //
  y = va_arg (ap, long long int);
  //
  // Mostra il terzo argomento.
  //
  printf ("y = %lli; ", y);
  //
  // Estrapola il quarto argomento.
  //
  z = va_arg (ap, int);
  //
  // Mostra il quarto e ultimo argomento.
  //
  printf ("z = %i\n", z);
  //
  // Conclude la scansione degli argomenti.
  //
  va_end (ap);
  //
  return;
}

int main (int argc, char *argv[])
{
  f (10, (long double) 12.34, (long long int) 13, 14);
  return 0;
}


Output:
1
w = 10; x = 12.340000; y = 13; z = 14


Create a new paste based on this one


Comments: