Namensräume
Varianten
Aktionen

ckd_add

Von cppreference.com
< c‎ | numerisch
Definiert in der Headerdatei <stdckdint.h>.
#define ckd_add( result, a, b ) /* implementierungsabhängig */

//öffentliche Schnittstelle

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

Berechnet die Addition x + y und speichert das Ergebnis in *result. Die Addition wird so durchgeführt, als ob beide Operanden in einem vorzeichenbehafteten Ganzzahltyp mit unendlichem Wertebereich dargestellt würden und das Ergebnis dann von diesem Ganzzahltyp in type1 konvertiert würde. Wenn der Wert, der *result zugewiesen wird, das mathematische Ergebnis der Operation korrekt darstellt, gibt die Funktion false zurück. Andernfalls gibt sie true zurück. In diesem Fall ist der Wert, der *result zugewiesen wird, das mathematische Ergebnis der Operation, das auf die Breite von *result umgebrochen ist.

Inhalt

[bearbeiten] Parameter

a, b - Ganzzahlwerte
Ergebnis - Adresse, an der das Ergebnis gespeichert werden soll

[bearbeiten] Rückgabewert

false, wenn der Wert, der *result zugewiesen wird, das mathematische Ergebnis der Addition korrekt darstellt, true andernfalls.

[bearbeiten] Hinweis

Sowohl type2 als auch type3 müssen beliebige Ganzzahltypen außer "plain" char, bool, einem bit-genauen Ganzzahltyp oder einem Aufzählungstyp sein, und sie können gleich sein. *result muss ein modifizierbarer L-Wert eines beliebigen Ganzzahltyps außer "plain" char, bool, einem bit-genauen Ganzzahltyp oder einem Aufzählungstyp sein.

Es wird empfohlen, eine Diagnosemeldung auszugeben, wenn type2 oder type3 keine geeigneten Ganzzahltypen sind oder wenn *result kein modifizierbarer L-Wert eines geeigneten Ganzzahltyps ist.

[bearbeiten] Beispiel

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.20.1 Die Makros für die überprüfte Ganzzahlarithmetik (p: 311)

[bearbeiten] Siehe auch

Überprüfte Subtraktionsoperation auf zwei Ganzzahlen.
(typspezifisches Funktionsmakro)[bearbeiten]
Überprüfte Multiplikationsoperation auf zwei Ganzzahlen.
(typspezifisches Funktionsmakro)[bearbeiten]