我真的不知道如何给这个问题起一个好的标题——对不起。
只是想知道这一切的目标是什么:将一个 uint8_t 变量指针传递给 bar() ,它确实将它设置为 1 或 0,我可以检查它在我的 main 中的状态。我确实需要 zbar(),它是一个线程,它实际上将值设置为 1 或 0
所以我有一个地方:
struct foo_t {
...
uint8_t *state;
};
我主要选择:
int main(void) {
uint8_t state = 0;
bar(&state);
while(1) {
if(state)
//do something here
}
}
在这里,我们在另一个源文件中有其他地方。
void bar(uint8_t *state) {
struct foo_t *foo; //using malloc here - don't worry
foo->state = state;
zbar(foo);
}
void zbar(struct foo_t *arg) {
if(condition)
arg->state = 1;
else
arg->state = 0;
}
如何使这个工作?o0 zBar 实际上可以访问 arg 结构,这根本不是问题。
请不要担心为什么我这样做很奇怪,它是在线程等中使用的。