簡體   English   中英

C中的“如果”函數獲取“控制可能達到非空函數的末尾”錯誤

[英]“if” function gets “control may reach end of non-void function” error in C

在此函數中,我嘗試根據不同的char *輸入返回不同的int值。 但是我得到了錯誤“控件可能到達非空函數的末端”。 我該如何解決?

// Converts a fraction formatted as X/Y to eighths
int duration(char* fraction)
{
    if (strcmp(fraction, "1/8") == 0)
    {
        return 1;
    }
    else if (strcmp(fraction, "1/4") == 0)
    {
        return 2;
    }
    else if (strcmp(fraction, "3/8") == 0)
    {
        return 3;
    }
    else if (strcmp(fraction, "1/2") == 0)
    {
        return 4;
    }
}

如果沒有合適的條件,則必須設置默認的返回值,嘗試在最后添加return -1

..
else if (strcmp(fraction, "1/2") == 0)
{
    return 4;
}else{
    return -1;
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM