Maison > Article > développement back-end > Comment détecter un débordement d’entier en C/C++ ?
Le seul moyen sûr est de vérifier avant qu'un débordement ne se produise. Il existe cependant des moyens informels de vérifier le dépassement d'entier. Ainsi, si votre objectif est de détecter un débordement lors de l'ajout d'entiers non signés, vous pouvez vérifier si le résultat est réellement inférieur aux deux valeurs ajoutées. Par exemple ,
unsigned int x, y; unsigned int value = x + y; bool overflow = value < x; // Alternatively "value < y" should also work
En effet, si x et y sont tous deux des entiers non signés, leur valeur ne peut pas être supérieure à n'importe lequel d'entre eux s'ils sont ajoutés et débordent, car ils doivent être supérieurs au plus grand possible Des entiers non signés sont nécessaires pour contourner et dépasser ces valeurs.
Une autre approche consiste à essayer d'accéder à l'indicateur de débordement dans le CPU. Certains compilateurs y donnent accès pour que vous puissiez le tester, mais ce n'est pas standard.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!