下面的代碼工作正常....至少超過一秒將在函數執行expx功能 Getexp,我叫Getexp每0.01秒100次, 實際上expx功能將只稱爲只是一個時間,這就是我想要的!
但是,我的用戶需要改變至少0.5秒以上調用expx, 因爲下面的代碼在tick1工作,tick2在整數類型, 我需要建議更改以下沒有太多的代碼和滿足用戶需求....
哪種功能最適合我的情況?在0.5秒的時間內,time_t不適用於我!
double Getexp(double valuex)
{
double wgt=0.9 ;
static double value_t0=0.0 ;
static double value_t1=0.0 ;
double dret = 0.0 ;
static time_t tick1=0 ,tick2=0 ;
if(value_t0 < 0.0001)
{
tick1=time(NULL);
tick2=tick1 ;
value_t0 = valuex ;
value_t1 = valuex ;
dret = expx(value_t1,value_t0,wgt) ;
value_t0 = dret ;
return value_t0 ;
}
tick2=time(NULL);
if(tick2 > tick1)
{
tick1 = tick2 ;
value_t1 = valuex ;
dret = expx(value_t1,value_t0,wgt) ;
value_t0 = dret ;
return value_t0 ;
}else
{
return value_t0 ;
}
}
我測試過它gcc ... time(NULL)將是1970年1月1日以來的秒數,我參考http://www.cplusplus.com/reference/clibrary/ctime/time/,所以如果我想要的是整數像1秒,2秒或更長時間,它工作正常,但用戶請求0.5秒,它不會在time_t工作,或者我不知道如何更改我的代碼以適應0.5秒的情況...感謝您的善意回應! – barfatchen 2012-01-30 09:52:12
如果你使用GetTickCount作爲例子,並且用我的備註(timer1 = timer2 + DELAY;)來改變你的代碼,其中DELAY以毫秒爲單位(每0.5秒500次),那麼它將完美工作。 – Valmond 2012-01-30 12:24:56