命名空间
变体
操作

ckd_add

出自 cppreference.cn
< c‎ | numeric
定义于头文件 <stdckdint.h>
#define ckd_add( result, a, b ) /* implementation-defined */

// 暴露的接口

bool ckd_add( type1* result, type2 a, type3 b );
(自 C23 起)

计算加法 x + y 并将结果存储到 *result 中。 加法运算的执行方式如同两个操作数都以具有无限范围的有符号整数类型表示,然后将结果从此整数类型转换为 type1。 如果赋给 *result 的值正确地表示了运算的数学结果,则返回 false。 否则,返回 true。 在这种情况下,赋给 *result 的值是运算的数学结果,该结果回绕到 *result 的宽度。

内容

[编辑] 参数

a, b - 整数值
result - 应存储结果的地址

[编辑] 返回值

如果赋给 *result 的值正确地表示了加法的数学结果,则为 false,否则为 true

[编辑] 注意

type2type3 都应为除 “plain” charbool、位精确整数类型或枚举类型之外的任何整数类型,并且它们可以相同。 *result 应为除 “plain” charbool、位精确整数类型或枚举类型之外的任何整数类型的可修改左值。

建议在 type2type3 不是合适的整数类型,或者 *result 不是合适的整数类型的可修改左值时,生成诊断消息。

[编辑] 示例

[编辑] 参考文献

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

[编辑] 参见

对两个整数执行 checked 减法运算
(类型泛型函数宏)[编辑]
对两个整数执行 checked 乘法运算
(类型泛型函数宏)[编辑]