簡體   English   中英

錯誤:控制到達非無效 function [-Werror=return-type]|

[英]error: control reaches end of non-void function [-Werror=return-type]|

我試圖從while循環中獲取計數器值到主塊。 一切正常,直到我得到涉及的計數器 integer ,現在我收到了這個錯誤:

"error: control reaches end of non-void function [-Werror=return-type]|"

我需要做什么來修復它? 我想從 function 中獲取計數器值到主塊中以使用它並打印它的實際值。

謝謝!

      int ScanFunction(char array[ThirtyOne] , int counter){
    PrintEnterMessage();
    for(int i=0 ; i < ThirtyTwo ; i++)
    {
        scanf("%c" , &array[i]);
        counter++;
        if(array[i] == Fourtynine || array[i] == Fourtyeight) array[i] = array[i] - '0'; // This is to convert the numbers from char to int
        if(array[i] == Excmark)
            {
            array[i] = 0;
            return counter;
            }
    }

    }

    int main(){
    char array[ThirtyOne] = {0};
    int counter = -1;
    ScanFunction(array, counter);
    printf("%d, counter is: %d" , array[1], counter);

    return 0;
}

ScanFunction()承諾返回一個int並且只有在if(array[i] == Excmark)之后的第二個if塊被命中時才會這樣做。 您需要在 function 的末尾添加一些其他return值,以便在未到達if塊的情況下返回值。

此外,您對ScanFunction()返回的值不執行任何操作。 你需要給function的output分配一些變量,比如:

counter = ScanFunction(array, counter);

暫無
暫無

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

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