Jak*_*uin 2 c variadic variadic-functions
您好,我想将一个结构传递给可变参数函数,并在 C 中使用所述结构内的值。我不知道该怎么做是如何访问传递的每个结构的内容。
这是一个示例情况
typedef struct {
int num;
bool dontIncludeFlag;
} number;
int average(unsigned count, ...){
va_list ap;
int j;
int sum = 0;
va_start(ap, count);
for (j = 0; j < count; j++) {
if(va_arg(ap,number.dontIncludeFlag)) //This line does not work
sum += va_arg(ap.num, number); //so does this line
}
va_end(ap);
return sum / count;
}
int main(){
number a,b,c;
a.num= 5;
a.dontIncludeFlag = 0;
b.num= 2;
b.dontIncludeFlag= 1;
c.num= 1;
c.dontIncludeFlag= 0;
average(3,a,b,c);
}
Run Code Online (Sandbox Code Playgroud)
如何访问我传递的结构参数的内容
代码使用va_arg不正确。使用它将可变参数分配给变量,然后访问该成员。
number n;
for (j = 0; j < count; j++) {
n = va_arg(ap, number);
if(n.dontIncludeFlag)
sum += va_arg(ap.num, number);
}
Run Code Online (Sandbox Code Playgroud)