format ‘%f’ expects argument of type ‘double’, but argument 2 has type ‘float (*)(int, int)’ [-Wformat=]
时间: 2024-03-19 14:42:42 浏览: 747
这个错误的意思是,你在使用函数printf()时,使用了格式化字符串"%f",但是第二个参数传入的是一个指向函数的指针,而不是double类型的变量。这可能是因为你在传参时出现了错误,或者是你本来想传一个double类型的变量,但是在函数调用之前将其转换成了一个函数指针。你需要检查代码,确定第二个参数的类型是否正确,并且确保所有参数都正确传递。
相关问题
[Warning] format '%f' expects argument of type 'float*', but argument 2 has type 'double*' [-Wformat=]
这是一个编译器的警告信息,它表示格式化字符串中使用了%f占位符,但实际传入的参数类型是double*。这可能会导致程序运行时出现错误或不可预测的行为。解决方法是将%f改为%lf,或将函数参数类型改为float*。如果您使用的是C++,则建议使用iostream库的输入输出操作符,而不是printf函数。
format ‘%lf’ expects argument of type ‘double *’, but argument 2 has type ‘double’
这个错误的意思是,你使用了格式化字符串 "%lf" 来读取一个 double 类型的变量,但是传递给它的参数是一个 double 类型的值,而不是指向 double 类型变量的指针。
可能是你在使用 scanf() 函数时,把一个 double 类型的变量的值传递给了它,而不是变量的地址。解决这个问题的方法是,把变量的地址传递给 scanf() 函数,例如:
```
double x;
scanf("%lf", &x); // 注意要加上取地址符 &
```
这样就可以正确读取 double 类型的变量了。
阅读全文