[elektro] change of sign, miért?

potyo potyo.ada at gmail.com
Tue Apr 27 18:39:59 CEST 2010


Értem én a logikát, csak te is érted-e? :-)) Az operátorok
kiértékelési sorrendje ez történik szerintem (kitettem szögletes
zárójelekkel):

#define MIN_VAL(val)    ( (sizeof(val)==1)?(-128): [ 0 ||
(sizeof(val)==2) ] ?(-32768): [ 0 || (sizeof(val)==4) ]
?(-2147483648):0 )

Szóval végülis semmi gond a || operátorral azon kívül, hogy
felesleges, mert semmi szerepe sincs:

#define MIN_VAL(val)
(sizeof(val)==1?(-128):(sizeof(val)==2?(-32768):sizeof(val)==4?(-2147483648):0))




Fuzesi Arnold <arnold.fuzesi.lista at gmail.com> írta (2010. április 27. 17:59):
> igazából nem, mert mindig csak egyik teljesül forditasi idoben... és a
> "val helyere keruljon ez || az || amaz - forditaskor" tulkepp a logika.
>
> Alapvetoen mukodik.... csak anyázik és nem értem miért.
>
> A.
> On 2010. 04. 27. 17:37, potyo wrote:
>> A logikai VAGY helyett nem bitenkénti VAGY kellene? Mondjuk ezt nem a
>> hibaüzenettel kapcsolatban írom, hanem csak ahogy ránéztem a kódra.
>>
>>
>> 2010/4/27 Fuzesi Arnold <arnold.fuzesi.lista at gmail.com>:
>>> #define MIN_VAL(val)    ( (sizeof(val)==1)?(-128):0 || (sizeof(val)==2)?(-32768):0
>>> || (sizeof(val)==4)?(-2147483648):0 )
>>>
>>> ...
>>>                schar tmp;
>>> ...
>>> ...
>>>
>>> sys_stat.tmp1.tmp=MIN_VAL(sys_stat.tmp1.tmp);
>>>
>>> Warning[Pe068]: integer conversion resulted in a change of sign
>>>
>>> Nem ertem... pontosan mi  a nyu"gje?
>>>
>>>
>>> thx,
>>> A.
>>>
>>> -----------------------------------------
>>>          elektro[-flame|-etc]
>>>
>>
>> -----------------------------------------
>>           elektro[-flame|-etc]
>
> -----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list