【程序問題】函數計算值正確,但是返回值賦給另一個變量卻變成另一個值

出現問題程序如下:

#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呀?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章