[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Miguel.. tu problema no viene del compilador, el error que te pone es norma.. la expresion (exp)?exp1:exp2 es una facilidad para regresa exp1 o exp2 según exp, pero se trata de regresar valores asignables, no de ejecutar un comando o otro de acuerdo a exp. por ejemplo, podrias quere hacer lo siguiente : return(buf[buf_ndx]==':'?-2:(command[ent_ndx++]=buf[buf_ndx++])); si es que quieres hacer un return en ambos casos, y haciendo ademas la asignación de exp2. (pero el return de esta asignación.... no creo que sea lo que quieres). la mejor forma de hacer lo que quieres es probablemente : if(buf[buf_ndx]==':') return(-2); else command[ent_ndx++]=buf[buf_ndx++]; ademas... es bastante mas claro.... Saludos ! Olivier. -----Mensaje original----- De: Miguel Cárdenas <reno en geocities com> Para: Ulises Cervi~no <kermit en tower com ar> CC: linux-ayuda en nuclecu unam mx <linux-ayuda en nuclecu unam mx>; lugar-lst en linux org ar <lugar-lst en linux org ar> Fecha: Jueves, 23 de Septiembre de 1999 02:06 a.m. Asunto: Re: condicion?sent1:sent2; >> > buf[buf_ndx]====':' ? return -2 : command[ent_ndx++]=buf[buf_ndx++]; >> Si la linea que mandaste es TAL CUAL esta en el fuente, fijate que para >> comparar estas usando 4 = y no 2 ... (-; Es por eso que te tira un parse >> error. > >Eso fue error al copiar/pegar el segmento de codigo... en el fuente viene >con solo dos... no se porque, si le cambio el return por otra sentencia si >funciona, pero con el return me marca el parse error antes del return :( > >Saludos! >