roublesaha
Affiche originale- 22 déc. 2008
- 8 janvier 2009
J'utilise cet extrait de code
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('...................');
}
Mais je reçois l'avertissement :
'suggérer des parenthèses autour de l'affectation utilisée comme valeur de vérité' pour la première ligne, c'est-à-dire la boucle 'for' .... quelqu'un peut-il m'aider à me débarrasser de cet avertissement .. À
kpua
- 25 juillet 2006
- 8 janvier 2009
Cependant, c'est parfois le moyen le plus simple de coder ce que vous voulez dire (bien que je ne pense pas que ce soit nécessairement dans votre exemple). Lorsque vous avez une affectation dans une instruction if, GCC attend généralement quelque chose comme ceci :
Code : |_+_|
Remarquez les parenthèses supplémentaires autour du devoir. GCC vous suggère d'utiliser les parenthèses pour éviter l'erreur suivante :
Code : |_+_|
qui ne vérifierait pas que la valeur attribuée à foo est égale à NULL, mais affecterait plutôt le booléen (bar() != NULL) à foo.
Il est également habituel et généralement plus clair d'avoir la vérification booléenne explicite, c'est pourquoi GCC s'attend à cela. S
Ponceuse
à
- 24 avril 2008
- 9 janvier 2009
Code : |_+_|
est correct C (attribuez b à a et vérifiez qu'il n'est pas nul), mais le plus souvent, les gens voulaient vraiment dire
Code : |_+_|
Étant donné que l'affectation à l'intérieur de if() est l'exception, GCC émet un avertissement à ce sujet. De plus, pour les futurs lecteurs de votre code, les parenthèses supplémentaires indiquent « oui, je parle vraiment d'affectation ici ».
Articles Populaires