gpt4 book ai didi

c++ - 在函数完整性检查期间如何处理整数溢出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:16 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Best way to detect integer overflow in C/C++

我正在用 C 编写一个函数,但问题是通用的。该函数接受三个整数并返回有关这三个整数的一些信息。

我怀疑这里的问题是整数可以达到最大值,这会导致溢出。

例如:如果我将 a 作为最大值传递并且 b 可以是 1 - max 的任何值,那么在这种情况下,if 条件中的表达式 (a+b)>c 会导致溢出吗?如果是这样,我该如何处理?

我的解决方案是保留一个长整数作为临时变量以保留 a+b 的值并在表达式中使用它,但这听起来很脏。

引用这个片段:

int
triangle_type(int a, int b, int c) {
if (!((a+b)>c)&&((b+c) > a)&&((a+c>b))) {
return -1;
}
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com