gpt4 book ai didi

c++ - 程序流程并以安全和 Eloquent 方式正确地将控制权返回给 main()

转载 作者:行者123 更新时间:2023-11-30 03:26:48 25 4
gpt4 key购买 nike

我的应用程序的入口点在这里:

int main(int argc, char* args[]) {
MainLoop::Start();
return 0;
}

这会调用 init 函数,声明分配资源等。

初始化后,我的主循环是这样的:

void MainLoop::RunLoop(){
while(1){
switch(programState){
case MainLoop::Uninitialized:{
break;
}
case MainLoop::RunningGame:{
MainLoop::RunGame();
break;
}
case MainLoop::Exiting:{
MainLoop::ExitSafely();
break;
}
}
return;
}
}

MainLoop::ExitSafely() 函数执行一些垃圾收集并确保已初始化的子系统正确关闭。

循环末尾的 return 语句将程序流转回 main() 函数,它的行为完全符合预期。不过我不喜欢它。

也许我的退出函数应该返回 true 并终止循环?

这是一个个人项目,但我想正确地做事,而我所拥有的只是“感觉”不对。

感谢您的关注。

最佳答案

谢谢Bo Persson为了你的贡献。建议的解决方案具有可读性和功能性:

void MainLoop::RunLoop(){
while(programState != MainLoop::Shutdown){
switch(programState){
case MainLoop::Uninitialized:{
break;
}
case MainLoop::RunningGame:{
MainLoop::RunGame();
break;
}
case MainLoop::Exiting:{
MainLoop::ExitSafely();
programState = MainLoop::Shutdown;
break;
}
}
}
}

关于c++ - 程序流程并以安全和 Eloquent 方式正确地将控制权返回给 main(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48006360/

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