rublisaha
Originalus plakatas- 2008 m. gruodžio 22 d
- 2009 m. sausio 8 d
Aš naudoju šį kodo fragmentą
void * rankena_;
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('.................');
}
Bet aš gaunu įspėjimą:
„Pasiūlykite skliaustus aplink priskyrimą, naudojamą kaip tiesos reikšmę“ pirmajai eilutei, ty „for“ kilpai.... ar kas nors gali man padėti atsikratyti šio įspėjimo. KAM
kpua
- 2006 m. liepos 25 d
- 2009 m. sausio 8 d
Tačiau kartais tai yra paprasčiausias būdas užkoduoti tai, ką turite omenyje (nors nemanau, kad jūsų pavyzdyje tai būtinai). Kai „if“ teiginyje turite užduotį, GCC paprastai tikisi kažko panašaus:
Kodas: |_+_|
Atkreipkite dėmesį į papildomus skliaustus aplink užduotį. GCC siūlo naudoti skliaustus, kad išvengtumėte šios klaidos:
Kodas: |_+_|
kuris netikrintų, ar foo priskirta reikšmė yra lygi NULL, o priskirtų loginį reikšmę (bar() != NULL) foo.
Taip pat įprasta ir paprastai yra aiškiau, kad ten yra aiškus loginis patikrinimas, todėl GCC to tikisi. S
Sanderis
į
- 2008 m. balandžio 24 d
- 2009 m. sausio 9 d
Kodas: |_+_|
yra teisingas C (priskirkite b prie a ir patikrinkite, ar jis nėra nulis), bet dažniausiai žmonės tikrai turėjo omenyje
Kodas: |_+_|
Kadangi priskyrimas if() yra išimtis, GCC įspėja apie tai. Taip pat būsimiems jūsų kodo skaitytojams papildomi skliaustai nurodo „taip, aš čia tikrai turiu omenyje paskyrimą“.
Populiarios Temos