인사말 !!초당 실행되는 함수, 작동하지만 0.5 초당 같음
다음 코드는 잘 작동 .... 기능에 Getexp을 expx 기능 를 실행합니다 적어도 1 초 이상, 나는, 실제로 expx 기능이 단지 한 번만 호출됩니다 100 번 Getexp마다 0.01 초라고 그게 내가 원하는거야 !!
하지만, 내 사용자는 다음 코드는 정수 타입, tick1에 tick2 작동하기 때문에, 내가 아래에 너무 많이하지 코드를 변경 조언이 필요하고 만족, 을 expx 전화를 적어도 0.5 초 이상으로 변경해야 사용자 필요 ....
내 기능에 가장 적합한 기능은 무엇입니까? time_t는 0.5 초의 경우 나를 위해 작동하지 않습니다!
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
예를 들어 GetTickCount를 사용하고 DELAY가 밀리 초 (각 0.5 초당 500) 인 내 발언 (timer1 = timer2 + DELAY;)으로 코드를 변경하면 완벽하게 작동합니다. – Valmond