下面的代码片断写的累赘,你看出问题了吗?
_b = _pNcParam->m_bUseDefaultSpeed;
if (_b)
{
if (IDYES != AfxMessageBox(_GETCS(s_szSTOPUSEDEFAULTSPEED), MB_YESNO | MB_ICONQUESTION))
break;
}
else
{
if (IDYES != AfxMessageBox(_GETCS(s_szUSEDEFAULTSPEED), MB_YESNO | MB_ICONQUESTION))
break;
}
_pNcParam->m_bUseDefaultSpeed = !_b;
break;
改成下面代码是否更好些?
_b = _pNcParam->m_bUseDefaultSpeed;
if (IDYES == AfxMessageBox(_b ? _GETCS(s_szSTOPUSEDEFAULTSPEED) : _GETCS(s_szUSEDEFAULTSPEED), MB_YESNO | MB_ICONQUESTION))
_pNcParam->m_bUseDefaultSpeed = !_b;
break;
值得指出的是,上面两段代码的执行效率是一样的,但是下面的代码长度会小些,也更加精炼、可读性强,C语言提供了这种能力,我们应该充分利用。