Namespaces
Variants

ckd_mul

From cppreference.net
Definiert im Header <stdckdint.h>
#define ckd_mul( result, a, b ) /* implementation-defined */

// verfügbare Schnittstelle:

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

Berechnet die Multiplikation x × y und speichert das Ergebnis in * result . Die Multiplikation 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 zugewiesene Wert für * result das mathematische Ergebnis der Operation korrekt darstellt, gibt es false zurück. Andernfalls gibt es true zurück. In diesem Fall ist der zugewiesene Wert für * result 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 falls der Wert, der * result zugewiesen wurde, das mathematische Ergebnis der Multiplikation korrekt darstellt, true andernfalls.

Hinweis

Sowohl type2 als auch type3 müssen ein ganzzahliger Typ sein, außer "plain" char , bool , ein bitgenauer Ganzzahltyp oder ein Aufzählungstyp , und sie können identisch sein. * result muss eine modifizierbare Lvalue eines beliebigen ganzzahligen Typs sein, außer "plain" char , bool , ein bitgenauer Ganzzahltyp oder ein 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 Subtraktionsoperation für zwei Ganzzahlen
(typgenerische Funktionsmakro)
C++-Dokumentation für ckd_mul