gpt4 book ai didi

c - 错误: initializer element is not constant (how can I implement this?)

转载 作者:行者123 更新时间:2023-11-30 14:57:22 24 4
gpt4 key购买 nike

我了解到我收到 initializer element is not constant错误,因为我尝试将调用分配给 clock()startTime里面TimerstartTime是静态的(这意味着它的值只能是编译时已知的值)。

这是我的代码,我需要调用 (*func)seconds秒并且不确定如何实现这一点,那么做我需要的事情的好方法是什么?

static void Timer(void (*func)(void), int seconds)
{
static clock_t startTime = clock();

if ((startTime - clock() / CLOCKS_PER_SEC) > seconds)
{
startTime = clock();
(*func)();
}
}

更新

评论的人建议我做这样的事情,但如果我这样做if开头是多余的:

    static clock_t startTime = (clock_t) -1;

if (startTime == -1) startTime = clock();
else if ((startTime - clock() / CLOCKS_PER_SEC) > seconds)
{
startTime = clock();
(*func)();
}

最佳答案

static void Timer(void (*func)(void), int seconds)
{
static clock_t startTime = 0;

if(!startTime)
startTime = clock();

if ((startTime - clock() / CLOCKS_PER_SEC) > seconds)
{
startTime = clock();
(*func)();
}
}

关于c - 错误: initializer element is not constant (how can I implement this?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43968611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com