Namespaces
Variants

ckd_sub

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

// verfügbare Schnittstelle:

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

Berechnet die Subtraktion x - y und speichert das Ergebnis in * result . Die Subtraktion 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 zugewiesene Wert für * result das mathematische Ergebnis der Subtraktion 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, falls type2 oder type3 keine geeigneten Ganzzahltypen sind, oder falls * result kein modifizierbarer L-Wert eines geeigneten Ganzzahltyps 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 Additionsoperation für zwei Ganzzahlen
(Typgenerische Funktionsmakro)
(C23)
GeprÜfte Multiplikationsoperation für zwei Ganzzahlen
(Typgenerische Funktionsmakro)
C++-Dokumentation für ckd_sub