C és C ++ fordító figyelmeztetést generál, ha összehasonlítjuk előjeles és előjel nélküli típusok; a példa kód, akkor nem teszi a ciklusváltozó előjel nélküli, és a fordító generál kódot figyelmeztetés nélkül (feltételezve, hogy az említett figyelmeztetések be van kapcsolva).
Természetesen te összeállítása figyelmeztetésekkel fordult egészen, igaz?
És Van úgy összeállítása a „kezelni figyelmeztetésekre hibák”, hogy azt, hogy egy lépéssel tovább?
A hátránya használatával aláírt számok, hogy van egy kísértés, hogy túlterheli őket úgy, hogy például az értékek 0-> n a menüket, és a -1 semmi nem választott - létrehozása helyett egy osztály, amely két változó, az egyik jelzik, ha valami van, és egy másik, hogy tárolja, mi, hogy a kiválasztás. Mielőtt te is tudod, akkor teszteljük negatív egész hely, és a fordító nem panaszkodik, hogy hogyan akarják, hogy hasonlítsa össze a menü kiválasztása ellen száma menüválasztásokat van - de ez veszélyes, mert ők a különböző típusú . Tehát ne csináld.