如何解决此语句可能会失败[-Werror = implicit-fallthrough =]?

时间:2018-07-21 07:10:43

标签: c++ c cmake

做什么

this statement may fall through [-Werror=implicit-fallthrough=]

是什么意思?

在这样的语句中编译时出现此错误:

switch(eT)
    {
    case SEL_CRIT:
        {
            TYPE1* psSel;
            iRetVal = dbseq(enB->m_ps,
                NULL, NULL, &esM, NULL, ESEC);
            while (iRetVal == 0)
            {
                if(psEnterprise)
                {
                    bool iFound = false;
                    for (i = 0; i< psME->m_pslave[0].m_uc; i++)
                    {
                        ENT node1;
                        sEOS = psME>m_pslave[0].m_pslavecnt[i];

                    }
                    if (iFound && (psME->m_NOTOVERLOADED == false))
                    {
                        return psME;
                    }
                }
            }
            psSel = (M_EN*)pCrit;
            LOG_INFO(FAIL_TO_LOAD, psME->m_ONG, psME->EN);
            int_Enterprise = NULL;
        }

int_Enterprise = NULL;

其中

int_Enterprise是一些结构指针。

我该如何解决?

1 个答案:

答案 0 :(得分:3)

您的break;末尾没有case:,因此执行将落入下一个case。添加break语句以防止失败,如果需要的话,或添加[[fallthrough]]属性,以防止失败。