c - 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
解决方案
最好的方法是使用静态局部变量,如下所示:
void foo(void) {
static int counter = 0;
counter++;
if(counter > 5) {
counter = 0;
/* Do something every fifth time */
}
}
请注意,您不能使用普通的局部变量(例如int counter = 0;
),因为当函数返回时其内容将丢失。这static
使它更像一个全局变量(因此当函数返回时它的值不会丢失)。
推荐阅读
- angular - 在从子输入进行聚焦传播后,无法在 Angular 组件上重新激活 @hostlistener keydown 事件
- mod-wsgi - CKAN Harvester 无法加载单个收获页面
- android - Android NDK 编译 LAME HAVE_MPGLIB > 'interface.h' 文件未找到
- typescript - How to replace properties using mapped types in Typescript
- python - Python无法附加从文件中读取的内容
- iphone - 物理学帮助寻找次级电压
- android - Add marker to map fragment from onFocusChange() method of Edit Text
- swift - Swift Mac 和 CloudKit 上的问题,应用程序运行后立即崩溃
- sql - 需要 SQL 查询以在 oracle 中打印从 2016 年 11 月到 2018 年 10 月的月份和年份记录数
- excel - json.dump 的等价物可用于 Python 指定的 excel 单元格?