我有一个主函数,它在初始化期间运行一些函数,然后运行一个等待来自 UART 的命令的 while 循环。
当我看到特定命令(比如说重置)时,我会调用一个返回值的函数。我想做以下事情:
- 保存返回值
- 使用返回值再次启动主函数。 main 中的函数初始化期间需要返回值。
我是 C 新手,我无法找到在 main 中保存变量值的方法。
根据我的理解,您基本上有以下设置:
int main(int argc, char *argv[]) {
int value = something_from_last_reset;
perform_initialization(value);
while(1) {
int next_command = wait_for_command();
if(next_command == RESET_COMMAND) {
value = get_value();
// somehow restart main() with this new value
}
}
return 0;
}
您可以采取以下一种方法:
// global
int value = some_initial_value;
void event_loop() {
while(1) {
int next_command = wait_for_command();
if(next_command == RESET_COMMAND) {
value = get_value();
return; // break out of the function call
}
}
}
int main(int argc, char *argv[]) {
while(1) {
perform_initialization(value);
event_loop();
}
return 0;
}
这本质上可以让您“逃离”事件循环并重新执行初始化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)