У меня есть встроенный алгоритм в моем приложении. Всякий раз, когда я запускаю алгоритм, он сохраняет точное время выполнения в базе данных. Например, если я запускаю алгоритм в 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
Почему бы вам не сохранить количество прогонов в той же базе данных. Таким образом, вы можете прочитать его в начале программы, увеличить его на единицу, а затем записать это значение в базу данных.
это странная комбинация между C и псевдокодом
Это комбинация C и другого встроенного программного обеспечения.
Вставьте счетчик, и когда вы примените алгоритм, просто увеличьте его и проверьте, достигает ли он 5. Если это так, делайте все, что хотите, например, сбросьте его и измените значения.
Лучше всего использовать статическую локальную переменную, например:
void foo(void) {
static int counter = 0;
counter++;
if (counter > 5) {
counter = 0;
/* Do something every fifth time */
}
}
Обратите внимание, что вы не можете использовать обычную локальную переменную (например, int counter = 0;
), потому что ее содержимое будет потеряно при возврате функции. static
делает ее более похожей на глобальную переменную (поэтому ее значение не теряется при возврате функции).
Итак, первая проблема
MAIN {
. Это недопустимый синтаксис C.