Count number of parameters in C variable argument method call

前端 未结 3 502
南笙
南笙 2021-01-12 16:53

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

3条回答
  •  被撕碎了的回忆
    2021-01-12 17:18

    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");
    

提交回复
热议问题