Namespaces
Variants

ckd_add

From cppreference.net
Défini dans l'en-tête <stdckdint.h>
#define ckd_add( result, a, b ) /* implementation-defined */

// interface exposée :

bool ckd_add ( type1 * result, type2 a, type3 b ) ;
(depuis C23)

Calcule l'addition x + y et stocke le résultat dans * result . L'addition est effectuée comme si les deux opérandes étaient représentés dans un type entier signé avec une plage infinie, puis le résultat était converti de ce type entier vers type1 . Si la valeur assignée à * result représente correctement le résultat mathématique de l'opération, elle retourne false . Sinon, elle retourne true . Dans ce cas, la valeur assignée à * result est le résultat mathématique de l'opération enroulé sur la largeur de * result .

Table des matières

Paramètres

a, b - valeurs entières
result - adresse où le résultat doit être stocké

Valeur de retour

false si la valeur assignée à * result représente correctement le résultat mathématique de l'addition, true sinon.

Note

À la fois type2 et type3 doivent être un type entier autre que le char « simple », bool , un type entier à précision de bits , ou un type énuméré , et ils peuvent être identiques. * result doit être une lvalue modifiable de tout type entier autre que le char « simple », bool , un type entier à précision de bits, ou un type énuméré.

Il est recommandé de produire un message de diagnostic si type2 ou type3 ne sont pas des types entiers appropriés, ou si * result n'est pas une lvalue modifiable d'un type entier approprié.

Exemple

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.20.1 Les macros d'opérations entières vérifiées ckd_ (p: 311)

Voir aussi

(C23)
opération de soustraction vérifiée sur deux entiers
(macro fonction générique de type)
(C23)
opération de multiplication vérifiée sur deux entiers
(macro fonction générique de type)
documentation C++ pour ckd_add