名前空間
変種
操作

ckd_sub

From cppreference.com
< c‎ | numeric
ヘッダ <stdckdint.h> で定義
#define ckd_sub( result, a, b ) /* 実装定義 */

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

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

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

目次

[編集] パラメータ

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

[編集] 戻り値

false : *result に割り当てられた値が減算の数学的な結果を正しく表している場合。それ以外の場合は true

[編集] 注記

type2 および type3 は、「プレーン」な charbool、ビット精度整数型、または列挙型以外の任意の整数型である必要があり、それらは同じであっても構いません。*result は、「プレーン」な charbool、ビット精度整数型、または列挙型以外の任意の整数型の変更可能な左辺値である必要があります。

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

[編集]

[編集] 参考文献

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

[編集] 関連項目

2つの整数に対するチェック付き加算
(型総称関数マクロ)[編集]
2つの整数に対するチェック付き乗算
(型総称関数マクロ)[編集]
English 日本語 中文(简体) 中文(繁體)