Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dépassement arithmétique : le décalage gauche d’un nombre signé négatif n’est pas défini (io.4)
Notes
Cet avertissement indique que le code décale une valeur intégrale signée négative, qui n’est pas modifiable et déclenche le comportement défini par l’implémentation.
Nom de l’analyse du code : LEFTSHIFT_NEGATIVE_SIGNED_NUMBER
Exemple
void leftshift(int shiftCount)
{
const auto result = -1 << shiftCount; // C26453 reported here
// code
}
Pour corriger cet avertissement, utilisez le code suivant :
void leftshift(int shiftCount)
{
const auto result = ~0u << shiftCount; // OK
// code
}
Voir aussi
C26450
C26451
C26452
C26454
ES.101 : Utiliser des types non signés pour la manipulation de bits
ES.102 : Utiliser des types signés pour l’arithmétique