Namespaces
Variants

ckd_sub

From cppreference.net
定義済みヘッダー <stdckdint.h>
#define ckd_sub( result, a, b ) /* implementation-defined */

// 公開インターフェース:

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

減算 x - y を計算し、結果を * result に格納します。減算は、両オペランドが無限の範囲を持つ符号付き整数型で表現されているものとして実行され、結果はこの整数型から type1 に変換されます。 * result に代入される値が演算の数学的な結果を正しく表現している場合、 false を返します。それ以外の場合、 true を返します。この場合、 * result に代入される値は、演算の数学的な結果が * result の幅にラップアラウンドされた値です。

目次

パラメータ

a, b - 整数値
result - 結果を格納するアドレス

戻り値

false 減算の数学的結果が * result に正しく代入された場合は、 true それ以外の場合。

注記

type2 および type3 は、「プレーン」な char bool ビット精度整数型 、または 列挙型 以外の任意の整数型でなければならず、同じ型でもよい。 * result は、「プレーン」な char bool 、ビット精度整数型、または列挙型以外の任意の整数型の変更可能な左辺値でなければならない。

type2 または type3 が適切な整数型でない場合、あるいは * result が適切な整数型の変更可能な左辺値でない場合、診断メッセージを生成することが推奨されます。

参考文献

  • C23規格 (ISO/IEC 9899:2024):
  • 7.20.1 ckd_ チェック付き整数演算マクロ (p: 311)

関連項目

(C23)
2つの整数に対するチェック付き加算演算
(型汎用関数マクロ)
(C23)
2つの整数に対するチェック付き乗算演算
(型汎用関数マクロ)