gpt4 book ai didi

c - 当数组的字节发生变化时如何调用函数?

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:59 25 4
gpt4 key购买 nike

如果有一个非常大的数组,Arr [255]。我正在编写一个函数,只要该数组中的任何一个或多个字节已被其他函数更新,该函数就应该执行一项任务。你能帮我找到最好的方法吗?

对于 Arr 前 3 个字节的任何更改,我可以像下面这样调用函数 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;
}

如何在不消耗大量处理时间和增加代码长度和大小的情况下对整个数组执行此操作?

最佳答案

不要直接访问数组而是使用 getters/setters:

static char arr[255];

char read_arr(int index) {
return arr[index];
}

void write_arr(int index, char value) {
if (arr[index] != value) {
Task();
arr[index] = value;
}
}

一旦将新的(不同的)值写入数组,就会检测到变化,并且可以立即执行 Task()。您不必再定期检查整个阵列。

关于c - 当数组的字节发生变化时如何调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com