gpt4 book ai didi

c - 如何跟踪 C 中结构成员值的变化?

转载 作者:行者123 更新时间:2023-11-30 18:05:56 24 4
gpt4 key购买 nike

struct STATE{
uint8 bit;
uint8 cop;
}
STATE *state_array[1024];

state_aray[0]->bit = 8;
state_aray[0].cop = 8;
state_aray[1]->bit = 0;
state_aray[1].cop = state_aray[1]->bit & 8 != state_aray[0]->bit & 8
state_aray[2]->bit = 12;
state_aray[2].cop = state_aray[1]->bit & 8 != state_aray[0]->bit & 8 && state_aray[2]->bit & 8 != state_aray[1]->bit & 8
state_aray[3]->bit = 0;
state_aray[3].cop = state_aray[1]->bit & 8 != state_aray[0]->bit & 8 && state_aray[2]->bit & 8 != state_aray[1]->bit & 8 && state_aray[3]->bit & 8 != state_aray[2]->bit & 8
state_aray[4]->bit = 8;
state_aray[4].cop = ...

state_aray[5].cop = ... ...
...
state_aray[100].cop = ... ...... ......... ....... ......... ....... ...... ....... ............... ........ ...... ............ .... ......... ...... ..


有没有办法只使用state_aray[i-1]->cop和state_aray[i-1]->bit和state_aray[i]->bit来获取state_aray[i]->cop?

谢谢

最佳答案

行不通。与 OOP 的“this”或“self”概念相反,C 中不存在“我是该结构的成员”机制。这就是为什么在 C 中您只需隐藏结构实现并提供函数来更改您偷偷设置其他值的值。

STATE *create_state(void)
{
STATE *retval;

if( (retval = malloc(sizeof(STATE))) == NULL )
return NULL;
retval->cop = -1;
retval->bit = 0;
return retval;
}

void set_state(STATE *st, int val)
{
st->bit = val;
st->cop++;
}

int has_state_changed(STATE *st)
{
return st->cop;
}

关于c - 如何跟踪 C 中结构成员值的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972297/

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