gpt4 book ai didi

c - va_start 警告 "second parameter of ' va_start ' not last named argument"

转载 作者:行者123 更新时间:2023-11-30 20:56:08 28 4
gpt4 key购买 nike

代码工作完美,但 gcc 和 clang 报告 va_start 上存在问题

stackoverflow 要求我再写一些东西,但我真的不知道是什么 =)

int Matrix_cool_input (matrix *A, ... )
{
int num = A->m * A->n;

va_list arguments;
va_start (arguments, num);

int i,j;
int rc = 0;
double v;

for (int x = 0; x < num; x++)
{
i = x / A->m;
j = x % A->n;
v = va_arg ( arguments, double );
rc |= Matrix_set(A,i,j, v);
}
va_end(arguments);
return rc;
}

最佳答案

来自 va_start() 的手册页

void va_start(va_list ap, last);

va_start()

The va_start() macro initializes ap for subsequent use by va_arg() and va_end(), and must be called first. The argument last is the name of the last argument before the variable argument list, that is, the last argument of which the calling function knows the type.

所以,va_start()应该使用变量参数列表之前的最后一个参数的名称,即A。您不应该向其传递任何其他值[例如,根据您的情况,函数 local num]。

关于c - va_start 警告 "second parameter of ' va_start ' not last named argument",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627111/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com