Des chercheurs danois et suédois en sciences informatiques et systèmes autonomes ont décortiqué la sécurité...
Nvidia se prépare à livrer la plate-forme serveur HGX-2 qui sera capable d'exploiter la puissance de 16 GPU Tesla V100...
L'EMD, une école de commerce située à Marseille ouvre à la prochaine rentrée l'école du numérique...
checked
) ou non vérifié (unchecked
).
Dans un contexte vérifié, un dépassement de capacité arithmétique lève une exception.
Dans un contexte non vérifié (unchecked
), ce dépassement de capacité arithmétique est ignoré et
le résultat est tronqué en supprimant tous les bits de poids fort qui ne tiennent pas dans le type destinataire.checked
indique un contexte vérifié.unchecked
indique un contexte non vérifié.++, --, unaire -, +, -, *, /
float
ou double
en un type intégral.checked
ni unchecked
ne sont spécifiés, le contexte par défaut pour les expressions non constantes
(expressions évaluées au moment de l'exécution) est défini par la valeur de l'option -checked
compilateur.
Par défaut, la valeur de cette option n'est pas définie et les opérations arithmétiques sont exécutées
dans un contexte non vérifié (unchecked
).checked
). Sauf si une expression constante est placée explicitement
dans un contexte non vérifié (unchecked
), les dépassements de capacité qui se produisent pendant
l'évaluation lors de la compilation de l'expression entraînent des erreurs au moment de la compilation.checked
permet d'activer explicitement le contrôle de dépassement de capacité pour les conversions et les
opérations arithmétiques de type intégral.-2 147 483 639
comme somme de deux entiers positifs.checked
. Les exemples suivants montrent comment utiliser une
expression checked
ou un bloc checked
pour détecter le dépassement de capacité produit par la somme
précédente au moment de l'exécution. Les deux exemples lèvent une exception de dépassement de capacité.unchecked
pour empêcher la vérification du dépassement de capacité.checked
pour activer la vérification du dépassement de capacité au moment de l'exécution.unchecked
permet de supprimer le contrôle de dépassement de capacité pour les conversions et les opérations
arithmétiques de type intégral.unchecked
), si une expression produit une valeur située hors de la plage du type de destination,
le dépassement de capacité n'est pas signalé. Par exemple, comme le calcul dans l'exemple suivant s'effectue dans un bloc ou
une expression unchecked
, le fait que le résultat est trop grand pour un entier est ignoré et int1 se voit assigner la valeur -2,147,483,639
.unchecked
est supprimé, une erreur de compilation se produit.
Le dépassement de capacité peut être détecté au moment de la compilation, car tous les termes de l'expression sont des constantes.checked
).unchecked
.