C kerdes
jani2
kj72 at freemail.hu
Thu Apr 29 11:53:27 CEST 2004
Hello Vomberg,
Thursday, April 29, 2004, 10:26:29 AM, Írtad:
VI> 1. Nekem nem teccik a pontosvessző a define-ban: 0x00;
VI> 2. mi az addr deklarációja?
Valszeg Unsigned integer... Hiszen azért sikít a compiler, hogy egy
pozitív egészet hasonlíttatunk össze nullával: értelmetlen, céltalan,
FÖLÖSLEGES. Szintaktikailag helyes, csak szemantikailag nem: ezért
warning, s nem error.
Egy unsigned (addr) mindig nagyobb vagy egyenlő mint a konstans 0
(DINPUT_RANGE_LOW).
Szerintem a program írása még kezdeti stádiumban van, s ezért
definiálja az író a változót konstansnak, s ezért a warning...
(Ilyet én is szoktam csinálni... :)) )
Majd egy későbbi szakaszban a változó tényleg változó lesz, nem pedig
konstans. Erre utal a neve is: DINPUT_RANGE_LOW
Bár az is lehet, hogy a #define változót képez kezdőértékkel, csak a
későbbiekben nem lett módosítva, s ezt ismeri fel a compiler. Nem
nagyon értek a C nyelvhez...
Erről jut eszembe: a C nyelv tanulásához keresek MAGYAR nyelvű
forrást; pdf, html, txt, stb. kellene.
>> BZ> Mi lehet ebben a buktató, hogy a fordító warning-ol ? :
>>
>> BZ> #define DINPUT_RANGE_LOW 0x00;
>>
>> if (addr >>= DINPUT_RANGE_LOW) rv = TRUE ;
>>
>> BZ> Warning[Pe186]: pointless comparison of unsigned integer with zero
>> Jdictionary segít: Értelmetlen összehasonlítás...
--
Üdv: Kis János mailto:kj72 at freemail.hu
More information about the Elektro
mailing list