在'double'之前预期的primary-expression

时间:2013-03-30 02:18:23

标签: c++ arduino

我试图创建一个PID控制器:

PID* nsController = new PID(&double(imu.ypr[2]*), &nsOut, 
                             &nsSet, 7, 0.0, 1.1, REVERSE);

error: expected primary-expression before 'double'

imu.yprfloat ypr[3];
PID候选者是:PID::PID(double*, double*, double*, double, double, double, int)

这个错误是什么意思?以及如何解决?我只是想将float转换为double*和&意思?谢谢

1 个答案:

答案 0 :(得分:1)

你不能把这样的临时地址拿走。

相反,创建一个新的局部变量并将其传递给:

double val = imu.ypr[2];
PID* nsController = new PID(&val, &nsOut, 
                         &nsSet, 7, 0.0, 1.1, REVERSE);