下面的代码工作正常....至少超过一秒将在函数执行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