當我試圖編譯一塊下面的代碼,我得到這樣的警告:編譯器警告 - 建議各地分配括號用作真值
warning: suggest parentheses around assignment used as truth value
爲什麼會出現這種情況?我相信這是一個很常見的成語。我甚至在我的代碼中使用過類似的東西。
struct PIDList*
getRecordForPID(struct PIDList* list, pid_t pid) {
while(list = list->next)
if (list->pid == pid)
return list;
return NULL;
}
感謝
編輯:謝謝您的回答。所有這些都非常相似,所以我會通過刷新頁面並點擊頂部的那一個來接受隨機的一個:P
你可以自由關閉警告,或者說把它關閉... – 2011-03-29 17:54:56
我有點心不在焉,所以我很感謝迂腐,-Wall,-Wextra,-Wshadow等 – 2011-03-29 18:03:02
那麼你可以添加'-Wno-括號'(我相信這是正確的)來禁用這個特定的警告。但是,如果你是那個心不在焉的人,注意不要寫'='而不是'=='...... – 2011-03-29 18:08:50