Cで可変長引数のみを取る関数を作りたいのですが、どのようにすればいいのでしょうか?
下の例のように、最初に可変長引数の数を示すcounterのような引数を取り、その数を元にforで値を得るものはよく見かけますが、これを average(10, 20, 30) というふうに可変長引数のみを取り、結果を返すにはどうすればいいのでしょうか?

Macを使っているため、コンパイラはclangです。

#include <stdarg.h>

double average(int count, ...) {
    va_list ap;
    int j;
    double sum = 0;

    va_start(ap, count);
    for (j = 0; j < count; j++) {
        sum += va_arg(ap, double);
    }

    va_end(ap);
    return sum / count;
}

#average(10, 20, 30) -> 20と返ってくるようにしたい

コードの引用元: Wikipedia:可変長引数