簡體   English   中英

警告:控制到達遞歸函數中非空函數的結尾

[英]warning: control reaches end of non-void function in recursive function

我收到警告:控制到達非空函數的末尾。

我有一個看起來像這樣的遞歸函數:

unsigned long FUNCTION (....) {

    if (something) {
        return 1;
    }
    else if (something2) {

        if(thing) {
            FUNCTION(....);
        }
        else
            return 0;
    }
    else {
        return 0;
    }
}

我不能只把return 0放進去。 在函數的末尾,因為它最終使我的程序執行我不希望做的事情。 如何使警告消失?

調用FUNCTION(...)的分支不會返回任何內容。 結果,如果采用此分支,則您的函數具有未定義的行為。 不能從代碼中確定需要返回的內容:您必須提出相應的建議。

請注意, FUNCTION通常表示名稱是一個宏:為避免混淆,有一些約定如何命名事物。 可以使用所有大寫字母調用函數,但這可能不是一個好主意。

暫無
暫無

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

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