Если у вас очень большой массив, Arr [255]. Я пишу функцию, которая должна выполнять задачу всякий раз, когда какой-либо один или более байт в этом массиве обновляется другими функциями. Не могли бы вы помочь мне с наилучшим возможным методом?Как вызвать функцию при изменении байтов массива?
Для любого изменения первых 3 байтов Arr, я могу вызвать функцию Task() следующим образом.
int main (void)
{
while (1)
{
CheckArrayUpdated();
}
}
void CheckArrayUpdated (void)
{
static char ArrPre [3];
if (
(ArrPre [0] != Arr [0]) ||
(ArrPre [1] != Arr [1]) ||
(ArrPre [2] != Arr [2])
)
{
Task();
ArrPre [0] = Arr [0];
ArrPre [1] = Arr [1];
ArrPre [2] = Arr [2];
}
else;
}
Как я могу сделать это для всего массива, не потребляя много времени обработки и увеличения длины и размера коды?
Можете ли вы изменить 'Task()', чтобы вернуть список измененных индексов? – usr2564301
Привет, Jongware, я понятия не имею, какой индекс массива меняется. – ajishalfred