Allows a function to accept any number of arguments.
Indicated by the parameter of the form ... which must appear last in the parameter-list of a function declaration.
Where syntactically correct, , ... may be replaced by ....
// the function declared as follows
int printx(const char* fmt, ...);
// may be called with one or more arguments:
printx("hello world");
printx("a=%d b=%d", a, b);
int printx(const char* fmt...); // same as above (comma is optional)
int printy(..., const char* fmt); //