[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