Overflow addition en c

phil -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
comment récuperer les cas d'overflow en c pour l'addition ou la multiplication sur les char, short, int?

peut on recuperer cette erreur? comme les erreurs systemes?


la solution consistant pour l'addition de deux short par exemple, a les surdimensionner en long et de verifier le resultat ne m'interesse pas!!!!

les createur du langage c on t'ils propsé une solution a ce probleme.
merci

2 réponses

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
les createur du langage c on t'ils propsé une solution a ce probleme.

Non je ne crois pas. C'est plutôt aux programmeurs de prévoir leur type de leurs variables si elles risquent d'être dépassées dans leur capacité.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Je ne suis pas expert la dedans, mais si tu fait MAX+1(32XXX+1) tu as soit MIN (-32XXX), soit inf.
Si tu as "inf", c'est simple.
Sinon, tu peux définir une structure se subtituant aux entier, de façon à détecter les dépassements.
struct int2{...}
int2 operator+(int2 a,int2 b)
{
if (a>0&b>0) if (a+b<a|a+b<b) /* traite l'erreur*/ else return a+b;
if (a<0&b<0) if (a+b>a|a+b>b) /* traite l'erreur*/ else return a+b;
...
}
0