有什么办法可以简化此代码段?

时间:2019-07-21 22:21:53

标签: c++

我觉得可以简化此代码段并使其更加简洁。 (不,这不是一项作业,我不是学生。)

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");
        }

更新/说明:该代码在构造函数中。

1 个答案:

答案 0 :(得分:2)

如果您真的想简化它(不指定原因),则可以这样写:

m_configured = Load() || (Unload() && Load());
if( !m_configured )
  xlog_error("Failed to start board.");

 xlog_info("Board Started");

假设您的xlog_error()函数停止了该程序,并且Unload()返回了是否成功卸载。