你好,我想传递一个结构体到一个可变函数,并在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);
}
如何访问传递的结构参数的内容
1条答案
按热度按时间4xrmg8kj1#
代码错误地使用了
va_arg
。使用它将可变参数赋给变量,然后访问成员。