Muud

Maci hoiatus: soovitage tõeväärtusena kasutatava ülesande ümber sulgusid

R

rublasaha

Originaalplakat
22. detsember 2008
  • 8. jaanuar 2009
Tere
Ma kasutan seda koodijuppi

tühi * käepide_;

if (handle_ =dlopen('/System/Library/Frameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('............');

}
else if (handle_ =dlopen('/System/Library/PrivateFrameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('.................');
}

Aga ma saan hoiatuse:
'soovita sulgusid tõeväärtusena kasutatava määramise ümber' esimese rea jaoks, st tsükli jaoks 'for'....kas keegi saaks aidata mul sellest hoiatusest vabaneda. TO

kpua

25. juuli 2006


  • 8. jaanuar 2009
Esiteks on if()-lausetes kõrvalmõjud üldiselt halb vorm.

Kuid mõnikord on see lihtsaim viis selle, mida mõtlete, kodeerimiseks (kuigi ma arvan, et see pole teie näites tingimata). Kui teil on if-lauses ülesanne, eeldab GCC üldiselt midagi sellist:

Kood: |_+_|
Pange tähele lisasulgusid ülesande ümber. GCC soovitab sul kasutada järgmise vea vältimiseks:

Kood: |_+_|
mis ei kontrolliks, kas foo määratud väärtus on võrdne NULL-iga, vaid määrab foo-le tõeväärtuse (bar() != NULL).

Samuti on tavapärane ja üldiselt selgem, et seal on selgesõnaline tõeväärtus, mistõttu GCC eeldabki seda. S

Sander

juurde
24. aprill 2008
  • 9. jaanuar 2009
Seda ka seetõttu, et avaldus

Kood: |_+_|
on õige C (määrake b-le a ja kontrollige, kas see ei ole null), kuid enamasti mõtlesid inimesed seda tõesti

Kood: |_+_|
Kuna määramine if() sees on erand, annab GCC selle kohta hoiatuse. Ka teie koodi tulevaste lugejate jaoks näitavad lisasulud 'jah, ma mõtlen siin tõesti määramist'.