rublesaha
Pôvodný plagát- 22. decembra 2008
- 8. januára 2009
Používam tento úryvok kódu
void * handle_;
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('.................');
}
Ale dostávam varovanie:
„navrhnúť zátvorky okolo priradenia použitého ako pravdivostná hodnota“ pre prvý riadok, tj pre cyklus „pre“...môže mi niekto pomôcť zbaviť sa tohto varovania. K
kpua
- 25. júla 2006
- 8. januára 2009
Niekedy je to však najjednoduchší spôsob, ako kódovať to, čo máte na mysli (hoci si nemyslím, že je to nevyhnutne vo vašom príklade). Keď máte priradenie v príkaze if, GCC vo všeobecnosti očakáva niečo také:
Kód: |_+_|
Všimnite si extra zátvorky okolo úlohy. GCC odporúča použiť zátvorky, aby ste sa vyhli nasledujúcej chybe:
Kód: |_+_|
čo by nekontrolovalo, či sa hodnota priradená k foo rovná NULL, ale skôr priraďuje booleovskú hodnotu (bar() != NULL) k foo.
Je tiež obvyklé a vo všeobecnosti jasnejšie mať tam explicitnú booleovskú kontrolu, takže to je dôvod, prečo to GCC očakáva. S
Sander
do
- 24. apríla 2008
- 9. januára 2009
Kód: |_+_|
je správne C (priraďte b k a a skontrolujte nenulové), ale najčastejšie to ľudia mysleli naozaj
Kód: |_+_|
Keďže priradenie vnútri if() je výnimkou, GCC na to vydá varovanie. Aj pre budúcich čitateľov vášho kódu, zátvorky navyše označujú „áno, tu naozaj myslím úlohu“.
Populárne Príspevky