En C, Selon le standard :
- type signé : comportement indéfini si overflow
- type non-signé: comportement « modulo »
Mouais, l'intérêt de standardiser un comportement indéfini me semble relativement limité (à part pour indiquer au programmeur qu'il ne doit pas faire ça). Du point de vue programmation, le comportement indéfini n'a aucun intérêt (puisqu'on ne peut pas l'exploiter, on doit juste l'éviter), et je dirais que le comportement "modulo" a un intérêt très limité (d'une manière générale, il va être buggogène dans 99% des cas, et dans le 1% restant, tout programmeur normalement constitué va faire un modulo explicite, ne serait-ce que pour des raisons de lisibilité et de portabilité).
[^] # Re: Une chose que j'ai oublié d'ajouter
Posté par arnaudus . En réponse à la dépêche Le langage Rust en version 1.0 alpha, on arrête de tout casser !. Évalué à 4.
Mouais, l'intérêt de standardiser un comportement indéfini me semble relativement limité (à part pour indiquer au programmeur qu'il ne doit pas faire ça). Du point de vue programmation, le comportement indéfini n'a aucun intérêt (puisqu'on ne peut pas l'exploiter, on doit juste l'éviter), et je dirais que le comportement "modulo" a un intérêt très limité (d'une manière générale, il va être buggogène dans 99% des cas, et dans le 1% restant, tout programmeur normalement constitué va faire un modulo explicite, ne serait-ce que pour des raisons de lisibilité et de portabilité).