The parameter last is the name of the last parameter before the variable argument list, i.e., the last parameter of which the calling function knows the type.
Successive invocations return the values of the remaining arguments.
The function foo takes a string of format characters and prints out the argument associated with each format character based on the type. These macros are not compatible with the historic macros they replace. A backward compatible version can be found in the include file varargs.h . Unlike the varargs macros, the stdarg macros do not permit programmers to code a function with no fixed arguments.