国际访客建议访问 Primers 编程伙伴 国际版站点 > C 教程 > stdckdint.h 以获得更好的体验。

# C 语言标准库头文件 stdckdint.h

请查看 C 语言标准库头文件列表 了解更多相关 API。

这个头文件提供 整数运算溢出检查 的相关功能。

# 函数

标准 说明
ckd_add C23 执行加法计算,并检查结果是否溢出
ckd_sub C23 执行减法计算,并检查结果是否溢出
ckd_mul C23 执行乘法计算,并检查结果是否溢出

# 推荐阅读

# 示例

#include <stdio.h>
#include <limits.h>
#include <stdckdint.h>

int main(void) {
    int a, b, result;
    
    // 正常情况
    a = 100;
    b = 200;
    if (ckd_add(&result, a, b)) {
        printf("%d + %d = %d 结果溢出了!\n", a, b, result);
    } else {
        printf("%d + %d = %d\n", a, b, result); // 输出: 100 + 200 = 300
    }
    
    // 溢出情况
    a = INT_MAX;
    b = 1;
    if (ckd_add(&result, a, b)) {
        printf("%d + %d = %d 结果溢出了!\n", a, b, result);
    } else {
        printf("%d + %d = %d\n", a, b, result);
    }
    
    // 乘法示例
    a = 100000;
    b = 100000;
    if (ckd_mul(&result, a, b)) {
        printf("%d * %d = %d 结果溢出了!\n", a, b, result);
    } else {
        printf("%d * %d = %d\n", a, b, result);
    }
    
    return 0;
}

运行结果:

100 + 200 = 300
2147483647 + 1 = -2147483648 结果溢出了!
100000 * 100000 = 1410065408 结果溢出了!
本文 更新于: 2025-11-27 09:38:07 创建于: 2025-11-27 09:38:07