A function may be called with a varying number of arguments of varying types. 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.
These macros are not compatible with the historic macros they replace. Unlike the varargs macros, the stdarg macros do not permit programmers to code a function with no fixed arguments.