簡體   English   中英

返回一個int的函數上的C“無效值不應該被忽略”錯誤

[英]C “void value not ignored as it ought to be” error on a function that returns an int

我有以下代碼,並且越來越

“錯誤:無效值不應該被忽略

int ab = findActiveBlock();“

如果將findActiveBlock設置為void但返回一個int,我將理解此錯誤。 請幫忙

void updateActiveBlock() {

    int ab = findActiveBlock();
    //code using ab//
}

int findActiveBlock() {
    for (int i = 0; i < BLOCKCOUNT; i++) {
        if(blocks[i].active) {
            return i;
        }
    }
    return 1;
}

其他信息:這是C,“ blocks []”是一個結構數組。

我會findActiveBlock猜測您的findActiveBlock實際上是在上面的某個地方預先聲明為void返回函數。 您只是忘了更新該聲明以使其與定義匹配。

PS另外要注意一點:( ()參數列表是C語言中的過時功能。對於沒有參數的函數,建議在其聲明中使用(void)

只是暗中的一擊,但* .active是一個功能嗎? 如果是這樣,則需要括號。

 int findActiveBlock() {
    for (int i = 0; i < BLOCKCOUNT; i++) {
        if(blocks[i].active()) {   //added parentheses to active
            return i;
        }
    }
    return 1;
}

暫無
暫無

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

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