我有一个函数Reference
返回一个结构如下图所示:无效的初始化
struct Reference_XS {
float *mat_c;
};
struct Reference_XS Reference(
float q0,
float q1,
float q2,
float q3,
float val1,
float val2,
float val3
)
{
float mat_a[3][3] = {
(2*q0*q0)+(2*q1*q1)-1, (2*q1*q2)-(2*q0*q3), (2*q1*q3)+(2*q0*q1),
(2*q1*q2)+(2*q0*q3), (2*q0*q0+(2*q2*q2)-1), (2*q2*q3)-(2*q0*q1),
(2*q1*q3)-(2*q0*q2), (2*q2*q3)+(2*q0*q1), (2*q0*q0)+(2*q3*q3)-1
};
float mat_b[3][1] = { val1, val2, val3 };
static float Mat_c[3];
int i, k;
float temp = 0;
for (i = 0; i < 3; i++) {
temp = 0;
for (k = 0; k < 3; k++) {
temp = mat_a[i][k] * mat_b[k][0] + temp;
Mat_c[i] = temp;
}
}
struct Reference_XS data = { Mat_c };
return data;
}
但在main.c
,当我把它称为像
struct Reference_XS Acc_G = Reference(
q0_XS,
q1_XS,
q2_XS,
q3_XS,
acx_XS,
acy_XS,
acz_XS
);
它显示了错误Invalid Initializer
嘿,我想你刚刚拼写'参考'错误,或者只是这个问题中的拼写错误? – Matthew
@Matthew嗨。对不起,这是输入的问题,在代码是好的 –
然后显示您的*完整的*代码。 –