【问题标题】:C program to detect the time change and reset the counter [closed]C程序检测时间变化并重置计数器[关闭]
【发布时间】:2019-05-22 07:05:28
【问题描述】:

我的应用程序中有一个内置算法。每当我运行算法时,它都会将确切的运行时间保存在数据库中。例如,如果我在 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

【问题讨论】:

  • 嗯,第一期是MAIN {。这不是有效的 C 语法。
  • 为什么不将运行计数也保存在同一个数据库中。这样您就可以在 prog 开始时读取它,将其递增 1,然后将该值写入数据库。
  • 它是 C 和伪代码之间的奇怪组合
  • 它是C和另一个内置软件的结合
  • 插入一个计数器,当你应用算法时,只需增加它并检查它是否达到 5。如果是,做任何你想做的事情,比如重置它并更改值

标签: c counter


【解决方案1】:

最好的方法是使用静态局部变量,像这样:

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

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

        /* Do something every fifth time */
    }
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多