What you want is called Variadic function. It can accept variable number of arguments.
**Famous examples: printf()
/scanf()
These functions contain an ellipsis (…
) notation in the argument list, and uses special macros to access the variable arguments.
The most basic idea is to write a function that accepts a variable number of arguments. So, it must be declared with a prototype that says so.
The syntax of ISO C requires at least one fixed argument before the …
. thus, we write the fixed arguments as usual, and then add the …
notain at the end of the parameter list to indicate the possibility of additional arguments. For example,
int func (const char *a, int b, …)
{
…
}
defines a function func()
which returns an int
and takes two required arguments, a const char *
and an int
. These are followed by any number of anonymous arguments.
You can check the On-line GNU manual for more details.