[英]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.