rublesaha
Original plakat- 22. desember 2008
- 8. januar 2009
Jeg bruker denne kodebiten
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('.................');
}
Men jeg får advarselen:
'foreslå parenteser rundt oppgave brukt som sannhetsverdi' for den første linjen, dvs. for 'for'-løkken....kan noen hjelpe meg med å bli kvitt denne advarselen.. TIL
kpua
- 25. juli 2006
- 8. januar 2009
Noen ganger er det imidlertid den enkleste måten å kode det du mener (selv om jeg ikke nødvendigvis tror det er i eksemplet ditt). Når du har en oppgave i en if-setning, forventer GCC vanligvis noe slikt:
Kode: |_+_|
Legg merke til de ekstra parentesene rundt oppgaven. GCC foreslår at du bruker parentesene for å unngå følgende feil:
Kode: |_+_|
som ikke vil sjekke om verdien tilordnet foo er lik NULL, men heller tilordne boolsk (bar() != NULL) til foo.
Det er også vanlig og generelt mer tydelig å ha den eksplisitte boolske sjekken der, så det er derfor GCC forventer dette. S
Sander
til
- 24. april 2008
- 9. januar 2009
Kode: |_+_|
er riktig C (tilordne b til a og sjekk for ikke-null), men oftest mente folk virkelig
Kode: |_+_|
Siden tildeling i if() er unntaket, utsteder GCC en advarsel om det. Også for fremtidige lesere av koden din, indikerer de ekstra parentesene 'ja, jeg mener virkelig oppdrag her'.
Populære Innlegg