【发布时间】:2017-03-31 19:53:06
【问题描述】:
我正在尝试为每分钟执行 execute_func 函数创建一种方式。
我试图在几分钟内循环,但是该函数从未在函数下方执行
void main(void) {
time_t timer;
struct tm* tmr;
timer = time(NULL);
tmr = localtime(&timer);
if (tmr->tm_min == 1)
execute_func();
}
return;
}
【问题讨论】:
-
你正在从你的函数中回调
main??在一个活动的 CPU 循环中测试从 0 到 59 的值?这很奇怪。提示:哪个函数调用你的execute_func?那将是main,所以你在没有基本情况的情况下递归地调用main... -
在
main中有时间调用另一个函数会更常见。 -
tmr->tm_min在 0 和 59 之间,为什么要循环呢? -
请张贴Minimal, Complete, and Verifiable example 显示问题,而不是幻想您的代码。
-
您在
tmr结构中填写一次localtime(),然后在循环中您只需将tm_min与从0 到59 的所有数字进行比较,其中一个总是成功的。这根本不需要时间,所以你只会不断地调用这个函数。您实际上需要等待。比如sleep(60)。
标签: c