如何在C中枚举

Tom*_*hen -1 c for-loop

我有一个看起来像这样的方法:

static inline float average(int numbers, ...) {

}
Run Code Online (Sandbox Code Playgroud)

你如何使用for循环来获得我已经将数字放入的所有值.例如:

average(1, 3, 5, 7);
Run Code Online (Sandbox Code Playgroud)

bol*_*lov 7

你不能.如果要使用可变参数,则需要一种获取参数数量的机制.大多数情况下,它是从第一个非变量参数推断出来的.这就是printf家庭的工作方式.

对于你的例子,我个人不会打扰可变参数.如果你想要一个像average应用于一个或多个参数的数学函数,只需使用一个向量:

static inline float average(const int* numbers, int size)
Run Code Online (Sandbox Code Playgroud)

如果您坚持使用可变参数函数,这些将帮助您入门: