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 nombre de décalages gauches est négatif ou supérieur ou égal à la taille de l’opérande, qui est un comportement non défini (io.3)
Notes
Cet avertissement indique que le nombre de décalages est négatif, ou supérieur ou égal au nombre de bits dans l’opérande décalé. L’un ou l’autre cas entraîne un comportement non défini.
Avertissement C4293 est une vérification similaire dans le compilateur Microsoft C++.
Nom de l’analyse du code : SHIFT_COUNT_NEGATIVE_OR_TOO_BIG
Exemple
unsigned long long combine(unsigned lo, unsigned hi)
{
return (hi << 32) | lo; // C26252 here
}
Pour corriger cet avertissement, utilisez le code suivant :
unsigned long long combine(unsigned lo, unsigned hi)
{
return (static_cast<unsigned __int64>(hi) << 32) | lo; // OK
}
Voir aussi
C26450
C26451
C26453
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