2011-02-25 52 views
-1

我想写一个独立于其他函数的在C中运行的函数。当其他功能正在工作时,我不希望此计时器停止。我怎样才能做到这一点?在C中使用全局函数作为定时器?

+0

嗯,我读到这个比Gunner和ayush有什么不同。你是否试图按照他们的建议来安排你的申请?或者你是否试图在经过一段时间后反复调用重复函数? – 2011-02-25 08:41:08

+0

d回复由ayush n gunner给出解决问题:) thaks so much every1 u guyz rock :) – samruddhi 2011-02-25 10:07:01

回答

0

使用time.h,使自己的功能类似here

+0

谢谢你的直接有用的回复n尤其是d代码 – samruddhi 2011-02-25 10:04:23

+0

@samruddhi:如果你有你的答案,然后接受一个..或者我的或者枪手的......这些人在将来对你不会有用......同时这也会对将来有同样问题的人有所帮助。 – ayush 2011-02-25 10:44:29

0

你可以在时间值存储在入口点的全局变量,即主后立即。之后,无论何时您需要知道当前的程序执行时间,您都可以通过从该时间点减去此时间值来获取它。

+0

thnks这么多4如此快速回复... – samruddhi 2011-02-25 10:03:12

0

我不知道我理解你的问题。

如果你想要一个函数在一个间隔(即没有抖动或延迟)上精确执行,你需要使用某种中断处理程序。如果您正在使用两个时间戳之间的差异来确定何时调用您的函数,则您的函数调用可能会无限期地延迟,具体取决于在读取第二个时间戳之前执行的代码。这通常是不希望的行为。

也许更容易与一个人为的例子来解释:

#include <stdio.h> 
#include <time.h> 

void f() { // do something stupid and time-consuming 
    int i, j; 
    for (i = 0; i < 65535; ++i) 
     for(j = 0; j < 65535; ++j); 
} 

int main() { 
    time_t t0, t1; 
    t0 = time(NULL); 
    f(); // waste time 
    t1 = time(NULL); 
    printf("time elapsed: %ld\n", t1 - t0); 
} 

在我的机器这需要11秒。