我觉得可以简化此代码段并使其更加简洁。 (不,这不是一项作业,我不是学生。)
m_configured 是我正在使用的临时布尔值,我不需要使用它。 Load()是用于初始化我正在开发的板上所有寄存器的功能。 Unload()撤消Load的所有操作。
我不想使用循环,因为我只希望此例程发生一次。即加载-失败->卸载->加载-再次失败->停在那里,不要再试一次。
bool m_configured = Load();
if (!m_configured)
{
xlog_info("Failed to start board. Trying again..");
Unload();
m_configured = Load();
if(!m_configured)
xlog_error("Failed to start board.");
}
if (m_configured)
{
xlog_info("Board Started");
}
更新/说明:该代码在构造函数中。
答案 0 :(得分:2)
如果您真的想简化它(不指定原因),则可以这样写:
m_configured = Load() || (Unload() && Load());
if( !m_configured )
xlog_error("Failed to start board.");
xlog_info("Board Started");
假设您的xlog_error()函数停止了该程序,并且Unload()返回了是否成功卸载。