Muut

Mac-varoitus: ehdota sulkuja tehtävän ympärille, jota käytetään totuusarvona

R

ruplaa

Alkuperäinen juliste
22. joulukuuta 2008
  • 8. tammikuuta 2009
Hei
Käytän tätä koodinpätkää

void * kahva_;

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('.................');
}

Mutta saan varoituksen:
'ehdota sulkuja totuusarvona käytetyn tehtävän ympärille' ensimmäiselle riville eli for-silmukalle...voiko joku auttaa minua pääsemään eroon tästä varoituksesta. TO

kpua

25. heinäkuuta 2006


  • 8. tammikuuta 2009
Ensinnäkin on yleensä huono muoto, jos if()-lauseissa on sivuvaikutuksia.

Joskus se on kuitenkin yksinkertaisin tapa koodata mitä tarkoitat (vaikka se ei mielestäni välttämättä ole esimerkissäsi). Kun sinulla on tehtävä if-lauseessa, GCC odottaa yleensä jotain tällaista:

Koodi: |_+_|
Huomaa tehtävän ympärillä olevat ylimääräiset sulut. GCC suosittelee, että käytät sulkeita seuraavan virheen välttämiseksi:

Koodi: |_+_|
joka ei tarkista, että foo:lle annettu arvo on yhtä suuri kuin NULL, vaan määrittäisi loogisen arvon (bar() != NULL) arvolle foo.

On myös tavallista ja yleensä selkeämpää, että siinä on eksplisiittinen boolean-tarkistus, joten siksi GCC odottaa tätä. S

Hiomakone

to
24. huhtikuuta 2008
  • 9. tammikuuta 2009
Se johtuu myös lausunnosta

Koodi: |_+_|
on oikein C (määritä b:lle a ja tarkista, onko se nollasta poikkeava), mutta useimmiten ihmiset todella tarkoittivat

Koodi: |_+_|
Koska määritys if():n sisällä on poikkeus, GCC antaa siitä varoituksen. Myös koodisi tuleville lukijoille ylimääräiset sulut osoittavat 'kyllä, tarkoitan todella tehtävää tässä'.