Cuando intento compilar el trozo de código de abajo, me sale esta advertencia:advertencia del compilador - sugieren paréntesis alrededor de asignación utilizados como valor de verdad
warning: suggest parentheses around assignment used as truth value
¿Por qué sucede esto? Esta es una expresión bastante común, creo. Incluso uso algo así antes en mi código.
struct PIDList*
getRecordForPID(struct PIDList* list, pid_t pid) {
while(list = list->next)
if (list->pid == pid)
return list;
return NULL;
}
Gracias
EDIT: Gracias por sus respuestas. Todos son muy similares, así que aceptaré uno al azar refrescando la página y haciendo clic en el que está en la parte superior :P
Eres libre de desactivar la advertencia, o más bien dejar fuera ya que es desactivado por defecto ... Estoy –
tipo de distraído, así que estoy agradecido por pedantic, -Wall, -Wextra, -Wshadow y similares –
Bueno, usted puede agregar '-Wno-parentheses' (creo que es la correcta) para desactivar esta advertencia específica. Sin embargo, si es tan distraído, tenga cuidado de no escribir '=' en lugar de '==' ... –