出現問題程序如下:
#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呀?