命名空间
变体
操作

ckd_add

来自 cppreference.cn
< c‎ | 数值
定义在头文件 <stdckdint.h>
#define ckd_add( result, a, b ) /* 实现定义 */

// 暴露的接口

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

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

目录

[edit] 参数

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

[edit] 返回值

如果分配给 *result 的值正确表示加法的数学结果,则为 false;否则为 true

[edit] 注意

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

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

[edit] 示例

[edit] 参考

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

[edit] 另请参阅

两个整数的检查减法运算
(类型通用函数宏)[编辑]
两个整数的检查乘法运算
(类型通用函数宏)[编辑]