本文主要是介绍【程序问题】函数计算值正确,但是返回值赋给另一个变量却变成另一个值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
出现问题程序如下:
#include "LZAP.h"
#include "string.h"int main()
{int i;double a;for(i = 1;i <62; ++i){FILE* record;char datafile[20];sprintf(datafile, "out-2048-LZAP-%d.txt",i);record = fopen("record-1-61.txt","a");a = entropy_0_order(datafile);if(record){fprintf(record,"%f ",a);}fclose(record);}return 0;
}
问题出现:调试发现进入entropy_0_order函数计算正确,返回为6.78...。但是一旦跳出函数,运行a=。。。就会出现a编程2048.0的情况
问题解决:entropy_0_order的声明在tools.h中,将这个头文件包含进来就可以返回正确的结果了。
为什么会这样呢?按说不包含头文件应该有unresolved external呀?
这篇关于【程序问题】函数计算值正确,但是返回值赋给另一个变量却变成另一个值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!