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 & 8state_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 & 8state_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 & 8state_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?
ks
最佳答案
不行与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中的struct成员值更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5972297/