相关疑难解决方法(0)

变量函数(va_arg)不适用于float?

我有一个variadic函数,它接受一个float参数.为什么不起作用?

va_arg(arg, float)
Run Code Online (Sandbox Code Playgroud)

c floating-point variadic-functions

16
推荐指数
2
解决办法
8518
查看次数

C/C++ va_list没有正确返回参数

我使用va_list时遇到问题.以下代码适用于int:

main() {
  int f1=1;
  float** m = function(n,f1);
}

float** function(int n,...) {

  va_list mem_list;
  va_start(mem_list, n);
  for (int i=0;i<n;i++) {
    for (int j=0;j<n;j++) {
      //m[i][j]=va_arg(mem_list,float);
      int f = va_arg(mem_list,int);
      printf("%i \n",f);
    }
  }

  va_end(mem_list);
  return NULL;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我改为浮动即

float f1=1.0;
float f = va_arg(mem_list,float);
printf("%f \n",f);
Run Code Online (Sandbox Code Playgroud)

它不返回正确的值(值为0.00000).我对发生的事情感到非常困惑.

c c++ variadic-functions

4
推荐指数
1
解决办法
1204
查看次数

标签 统计

c ×2

variadic-functions ×2

c++ ×1

floating-point ×1