C++调用C语言 -1.#IND问题
我的VC工程里面用C++调用C函数,其中调用C函数时有比较多的指针和数据参数传递,现在遇到一个问题就是调试运行时一些变量结果为-1.#IND, 比如:在Calculate.c文件的Calculate()函数中有个lfResult = sqrt(lfX*lfX + lfY*lfY)这个表达式,调试的时候lfX和lfY的值都没任何问题,得到结果lfResult就是-1.#IND无效值,找了好久没找到问题原因,我怀疑是程序出现溢出问题,但是具体不知道怎么造成的,不知道论坛里面有人遇到过这样的问题没有?求指教啊...
[解决办法]
lfResult 这个变量是什么类型,估计超过这个类型所能表示的最大值了
代码贴出来看看
[解决办法]
调试一下就知道,打条件断点,看看是不是负数或者超限了。
[解决办法]
分步看看:
lfTemp = lfX * lfX + lfY * lfY;
lfResult = sqrt(lfTemp);
double sqrt( double x );
lfResult = (float)sqrt((double)lfX*(double)lfX + (double)lfY*(double)lfY)