出现问题程序如下:
#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呀?