我正在开发一个使用 NI-DAQ 的应用程序,以下是提供商提供的一些方法。
void someMethod(Calibration *cal, float myArray[], float result[])
{
newMethod(&cal->rt,myArray,result,cal->cfg.TempCompEnabled);
}
void newMethod(RTCoefs *coefs, double myArray[],float result[],BOOL tempcomp)
{
float newMyArray[6];
unsigned short i;
for (i=0; i < 6; i++)
{
newMyArray[i]=myArray[i];
}
}
我基本上调用 someMethod(),为 myArray[] 和 result[] 提供一个包含六个元素 ([6]) 的数组。正如你在代码中看到的,之后调用了 newMethod(),并将 float myArray[6] 传递给了 double myArray[] 参数(我真的不明白为什么这段代码的开发人员选择使用双精度数组,因为在 newMethod() 中声明的唯一数组是浮点类型)。
现在我的问题来了:在 for 循环中,一些值传递没有任何问题,但是当第四个和第五个值传递给 newMyArray[] 时,它接收到两个值的“-1.#INF0000”。乍一看,我认为这将是一些垃圾值,但每次执行时都会出现“-1.#INF0000”。
我知道 C 语言有时会很棘手,但我真的不知道为什么会这样……