簡體   English   中英

如何解決“控件到達非void函數結束”警告?

[英]How to solve the “control reaches end of non-void function” warning?

我一直在得到一個編譯器錯誤control reaches end of non-void function 有問題的代碼 [if 語句和 if 語句的主體省略為 ] 的形式如下:

extern RC_Code_t osa_odm_init (void)
{
    if ( ⋯ )
    {
        ⋯
        ⋯
        return (RC_OK);
    }
}

我將函數的返回值指定為void但出現錯誤。 如何解決這個問題?

當該函數返回類型不是 void 時,會發生control reaches end of non-void function的結尾,但該函數可以在沒有return情況下到達結尾。

它可能是由控制語句(例如 if 語句和缺少 return 語句)引起的。

要回答“我將函數的返回值指定為 void 但出現錯誤”,

  • 您的函數osa_odm_init返回RC_Code_t ,而不是void void在參數中,表示沒有參數。

實際的原因是,它返回RC_Code_t ,但return是只有在這里,如果if語句是真的,你缺少的return ,如果if語句失敗。 編輯后的代碼應該是

extern RC_Code_t osa_odm_init (void)
{
    if ( odmInitFlag == BOOL_FALSE )
    {
        ........
        ........
        return (RC_OK);
    }
    // This section runs if ( odmIntFlag != BOOL_FALSE )
    // In your original code, you omitted the return
    return RC_ERROR; // Edit: Or return another RC_Code_t result
}

暫無
暫無

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

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