la comparaison entre les entiers signés et non signés entier expressions [-Wsign-comparez] avertissement
for ( i= 0; i < sizeof(r)/sizeof(r[0]); ++i ){
r[i]= 0;
}
Donc, c'est pour la boucle, je vais avoir des ennuis avec, comment puis-je réécrire, donc je ne l'avertissement:
comparison between signed and unsigned integer expressions [-Wsign-compare]
int size = sizeof(r)/sizeof(r[0]);
...i < size
ousize_t i;
- Double Possible de C: comment puis-je corriger les avertissements comme: "la comparaison entre les entiers signés et non signés"
Vous devez vous connecter pour publier un commentaire.
sizeof()
renvoie un entier non signé de typesize_t
. Utilisez donc un indice du même type.Recommander à pas utilisation
int size = sizeof(r)/sizeof(r[0]);
. La gamme desize_t
peut largement dépasser la plage positive deint
. La cession pourrait alors perdre des morceaux.size_t
est le type le mieux utilisé pour indexer les variables de tableau. N'oubliez pas, cependant, car il est certain entier non signé, il ne peut pas représenter des index négatifs.Dans votre code:
Je pense que le "je" est déclaré comme un int, essayez "unsigned int i;" comme ceci:
Exécuter votre code et il faut supprimer cet avertissement pour vous.