When using va_start(), va_arg() and va_end() to read parameters passed to a method, is there a way to count how many arguments there are?
According to the man page i
No. a Variable Argument function (such as printf
), must "know" when to stop looking for more arguments.
printf
knows by the number of %d
, %s
and other symbols in its format string.
Other functions sometimes use Sentinel values:
sumValues(1, 3, 5, 7, 6, 9, -1); // will add numbers until it encounters a -1
Other functions may have the number of parameters stated up front:
AddNames(4, "Bill", "Alice", "Mike", "Tom");