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