Namespaces
Variants

ckd_sub

From cppreference.net
定义于头文件 <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 - 整数值
result - 结果应存储的地址

返回值

若赋给 * result 的值正确表示了减法的数学结果,则为 false ;否则为 true

说明

type2 type3 应为除“普通” char bool 位精确整数类型 枚举类型 之外的任何整数类型,且二者可以相同。 * result 应为除“普通” char bool 、位精确整数类型或枚举类型之外的任何整数类型的可修改左值。

建议在以下情况产生诊断信息:若 type2 type3 不是合适的整数类型,或 * result 不是合适整数类型的可修改左值。

示例

参考文献

  • C23 标准 (ISO/IEC 9899:2024):
  • 7.20.1 ckd_ 检查整数运算宏 (p: 311)

参考

(C23)
对两个整数进行带检查的加法运算
(泛型函数宏)
(C23)
对两个整数进行带检查的乘法运算
(泛型函数宏)
C++ 文档 关于 ckd_sub