【发布时间】:2019-11-11 14:24:56
【问题描述】:
这是一个很奇怪的问题。我看不到 code1 和 code2 之间的任何区别。但是,应该有区别,因为它们会产生不同的结果:(注意 f0 和 f0A(充当缓冲区))
代码1:
for (k = 0; k < 6; k++) {
r1 = i0 + 6 * k;
f0 = 0.0F;
for (r2 = 0; r2 < 6; r2++) {
f0 += (float)b_a[i0 + 6 * r2] * p_est[r2 + 6 * k];
}
a[r1] = f0;
}
代码2:
float f0A[6] = {0};
for (k = 0; k < 6; k++) {
r1 = i0 + 6 * k;
for (r2 = 0; r2 < 6; r2++) {
f0A[r2] += (float)b_a[i0 + 6 * r2] * p_est[r2 + 6 * k];
}
}
for (r2 = 0; r2 < 6; r2++) {
r1 = i0 + 6 * r2;
a[r1] = f0A[r2];
}
【问题讨论】:
-
请发布包含所有相关变量声明的minimal reproducible example。我们无法猜测变量类型。
-
您的代码不完整。请将您的代码包装在
main函数中,以允许编译和运行它并显示预期和实际输出。 -
“没有给出正确的值” 不是问题描述。你期望什么价值?为什么?你会得到什么?