Namespaces
Variants

ckd_add

From cppreference.net
Definiert im Header <stdckdint.h>
#define ckd_add( result, a, b ) /* implementierungsdefiniert */

// verfügbare 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ären und das Ergebnis dann von diesem Ganzzahltyp in type1 konvertiert wurde. Wenn der Wert, der * result zugewiesen wird, das mathematische Ergebnis der Operation korrekt darstellt, wird false zurückgegeben. Andernfalls wird true zurückgegeben. In diesem Fall ist der Wert, der * result zugewiesen wird, das mathematische Ergebnis der Operation, das auf die Breite von * result umgebrochen wurde.

Inhaltsverzeichnis

Parameter

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

Rückgabewert

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

Hinweis

Sowohl type2 als auch type3 müssen ein ganzzahliger Typ sein, außer "plain" char , bool , einem bitgenauen Ganzzahltyp oder einem Aufzählungstyp , und sie können identisch sein. * result muss eine modifizierbare Lvalue eines beliebigen ganzzahligen Typs sein, außer "plain" char , bool , einem bitgenauen Ganzzahltyp oder einem Aufzählungstyp.

Es wird empfohlen, eine Diagnosemeldung zu erzeugen, wenn type2 oder type3 keine geeigneten Integer-Typen sind, oder wenn * result kein modifizierbarer L-Wert eines geeigneten Integer-Typs ist.

Beispiel

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.20.1 Die ckd_-geprüften Ganzzahl-Operationsmakros (S: 311)

Siehe auch

(C23)
Geprüfte Subtraktionsoperation für zwei Ganzzahlen
(typgenerische Funktionsmakro)
(C23)
Geprüfte Multiplikationsoperation für zwei Ganzzahlen
(typgenerische Funktionsmakro)
C++-Dokumentation für ckd_add