c - 通过C中的多种方法通过引用传递 - 值丢失
问题描述
我有多个通过引用传递变量的嵌套方法,但引用似乎在堆栈中的某个地方丢失了,而是创建了值的副本,因此值不会更新。
这是我的 C 代码:
方法_1.c,方法_2.c,方法_3.c,方法_4.c:
uint8_t *signal_in_methods = 0;
void method_1(void *param){
uint8_t *sig = (uint8_t*)param;
method_2(sig);
}
void method_2(uint8_t *sig){
method_3(sig);
}
void method_3(uint8_t *sig){
method_4(sig);
}
void method_4(uint8_t *sig){
signal_in_methods = *sig;
//uses the signal_in_methods in separate thread, but this value is not updated when updated in main function
...
while(1) {
sleep(1000);
uint8_t signal = *signal_in_methods;
printf("%d",signal);
}
}
主.c:
uint8_t signal = 0;
main() {
method_1(&signal);
while(1) {
signal = update_signal()//this method continuously changes the value 'signal'
}
}
如何正确地通过这多个方法传递引用,以便在主函数中更改变量时,所有方法都可以看到更改?
解决方案
推荐阅读
- javascript - Immutablejs - 映射不使嵌套对象不可变
- python - Python Azure BlobTrigger 如何获取元数据
- javascript - 使用 javascript 或 jQuery 将事件添加到特定标记
- r - 如何使用 gganimate 制作不同年份的动画 ggplot
- python - 如何从具有多个过滤器的 API 查询 JSON 数据?
- spring-boot - 在 @Spy 上调用原始方法然后抛出异常
- javascript - 将作为字符串从 API 返回的正则表达式转换为 JavaScript 中的有效正则表达式对象
- python - python加密模块中的错误:_RSAPrivateKey'对象没有属性'sign
- c - 奇怪的分段错误(数组和指针之间的差异?)
- reactjs - 如何在反应传单上覆盖内容(z-index问题)