Ostalo

Mac upozorenje: predložiti zagrade oko zadatka koji se koristi kao istinita vrijednost

R

rubljaha

Originalni poster
22. prosinca 2008
  • 8. siječnja 2009
bok
Koristim ovaj isječak koda

praznina * ručka_;

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

}
inače ako (handle_ =dlopen('/System/Library/PrivateFrameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('.................');
}

Ali dobivam upozorenje:
'predloži zagrade oko dodjele koja se koristi kao vrijednost istine' za prvi redak, tj. za petlju 'for'.... može li mi netko pomoći da se riješim ovog upozorenja.. DO

kpua

25. srpnja 2006


  • 8. siječnja 2009
Kao prvo, općenito je loš oblik imati nuspojave u if() izjavama.

Međutim, ponekad je to najjednostavniji način da kodirate ono što mislite (iako mislim da to nije nužno u vašem primjeru). Kada imate zadatak u naredbi if, GCC općenito očekuje nešto poput ovoga:

Šifra: |_+_|
Obratite pažnju na dodatne zagrade oko zadatka. GCC predlaže da koristite zagrade kako biste izbjegli sljedeću pogrešku:

Šifra: |_+_|
koji ne bi provjeravao da li je vrijednost dodijeljena foo jednaka NULL, već radije dodijelio boolean (bar() != NULL) foo.

Također je uobičajeno i općenito jasnije imati eksplicitnu booleovu provjeru, pa zato GCC to očekuje. S

Sander

do
24. travnja 2008
  • 9. siječnja 2009
To je također zbog izjave

Šifra: |_+_|
je ispravno C (dodijeli b a i provjeri da nije nula), ali najčešće su ljudi stvarno mislili

Šifra: |_+_|
Budući da je dodjela unutar if() iznimka, GCC izdaje upozorenje o tome. Također za buduće čitatelje vašeg koda, dodatne zagrade označavaju 'da, ovdje stvarno mislim na zadatak'.