Flustrace při pondělku

Pavel Kudrna Pavel.Kudrna@mff.cuni.cz
Úterý Srpen 5 14:54:39 CEST 2008


Jindrich Kubec wrote:
> At 10:53 5.8.2008, Pavel Kudrna wrote:
>   
>> Vyzkousejte v MPLABu tohle:
>>
>>   if 1 && 1+1*2==4
>>     messg "bug"
>>   else
>>     messg "ok"
>>   endif
>>     
>
> jaka je precedence operatoru? Treba je to takhle? Kdyby se ozavorkovalo, 
> bylo by jasneji, zda je nebo neni bug.
> 2==4 ->0, 1*2==4 ->0, 1+1*2==4 -> 1,  1&&1 -> 1?
>   
Priorita je jasna: nasobeni, plus, ==, &&, viz help MPASM, heslo 
Arithmetic operators
and precedence.
Je to bug, reportoval jsem ho vloni v zari, tenkrat byl mplab verze 7.x. 
Potvrdili, ze bug
je reprodukovatelny, a ze pry to predaji tymu programatoru.
Ted v MPLABu 8.1 to neni stale opraveno...

Kdyz se odstrani to "1 &&" tak to funguje, kdyz se nahradi "0 ||" tak ne.
Pomuzou zavorky kolem (1*2), (1+1*2) nebo kolem celeho (1+1*2==4).
Nojo, ale kdyz neumi prioritu kde je jistota, ze vzdy poslechne zavorky?

Ten evaluator vyrazu je esotericky a neco v tech plenkach bude.
PK



Další informace o konferenci Hw-list