У меня есть список счетчиков, и я проверяю каждый счетчик на каждом тактовом прерывании. Всякий раз, когда счетчики истекают, мне нужно вернуть все счетчики, истекшие до вызывающего кода, чтобы узнать, какой из них истек. Какой был бы самый элегантный способ сделать то же самое? Я думал об установке каждого флага в массиве и проверке. Но я обнаружил, что это еще один раунд проверки, который выполняется, когда проверяется истечение счетчика.Лучший способ вернуть набор значений из функции
Функция CheckCounterExpiry вызывается всякий раз, когда галочка часов истекает. Возврат не обрабатывается ниже, так как это мой запрос.
void CheckCounterExpiry()
{
Node *prev, *temp;
if (head == NULL)
{
return;
}
else
{
/*Check for counter and delete, return set of deleted id types as to signal which got deleted*/
prev = NULL;
temp = head;
while (temp->next != NULL)
{
if (clocktick== temp->target)
{
if (prev == NULL)
{
head = NULL;
}
/* I need to return the list of temp->counterId here. how to do it best?*/
prev->next = temp->next;
free(temp);
}
else
{
prev= temp;
temp = temp->next;
}
}
}
}
Elegance is C? Я не знал, что это было. – turnt
Смотрите это (закрытое) задание на код golf: http://codegolf.stackexchange.com/questions/15182/update-all-with-o1 –
Ну, я искал только ответ. Вероятно, Элегантность была неправильным словом. – C0D3R