首页 > 解决方案 > C程序检测时间变化并重置计数器

问题描述

我的应用程序中有一个内置算法。每当我运行算法时,它都会将确切的运行时间保存在数据库中。例如,如果我在 11.00 运行算法,它可以节省时间。如果我在 11.05 运行,它会在数据库中保存 11.05。

我想检测它运行的次数。因此,一旦它运行 5 次,我需要执行一些操作,例如更改值并将计数器重置为 0。所以当它达到 5 次迭代时,我应该再次重置计数器。

我是初学者。如果您能帮助我了解语法,那将会很有帮助。

MAIN
{


 int temp1, temp2, flag = 0, max = 5;

 temp1 = GET_INT_VALUE(8,1,84,1,0);


 if flag = 0;
 while(1)
 {
     if (templ == temp2)
         flag++;
     else
         flag = 0;

     if (flag == max)
     {
        //sprintf(Message,"SE value is %d",temp2);             
        PRINTOUT("Message");
        flag = 0;
        break;
     }

 }
}
END

标签: ccounter

解决方案


最好的方法是使用静态局部变量,如下所示:

void foo(void) {
    static int counter = 0;

    counter++;
    if(counter > 5) {
        counter = 0;

        /* Do something every fifth time */
    }
}

请注意,您不能使用普通的局部变量(例如int counter = 0;),因为当函数返回时其内容将丢失。这static使它更像一个全局变量(因此当函数返回时它的值不会丢失)。


推荐阅读