gpt4 book ai didi

比较几个整数值是否相等

转载 作者:太空狗 更新时间:2023-10-29 17:15:01 25 4
gpt4 key购买 nike

如果我有两个整数值,我可以简单地测试是否相等:

if (a == b)

如果我有三个整数值,那么我可以这样做:

if ((a == b) && (a == c) && (b == c))

我有这样一种情况,我有 6 个值来测试是否相等,这种方法会变得冗长

他们是否有更好、更符合 C 语言习惯(c-onic?)的方式来实现这一目标?

实际上,刚写完这个我就可以看到:

if ((a == b) && (b == c) && (c == d)... )

在逻辑上是可以的,即您不需要所有组合,因为 a == bb == c 暗示 a == c

但就表达的清晰度而言,我能达到多近:

如果(a == b == c) ?

最佳答案

你不会非常接近 a == b == c

为了让有经验的 C 程序员最少感到惊讶,我认为这是最好的

if(a == b && b == c && c == d && d == e && e == f)

即基本上就像你已经拥有的一样,括号更少。我并不总是反对添加对编译器没有影响的括号来帮助那些不知道所有优先规则的人,但我认为比较由 && 分隔(没有 | | 混入)是一个足够简单的情况,括号比它们的值(value)更困惑。

如果变量名很长,将它们全部放在一行中并不美观,所以也许

if(a == b &&
b == c &&
c == d &&
d == e &&
e == f)

或者这可能会更好,因为每行中 a 的重复将立即引起注意:

if(a == b &&
a == c &&
a == d &&
a == e &&
a == f)

如果你真的希望它紧凑,p99 preprocessor library提供这个:

#include "p99_for.h"

if(P99_ARE_EQ(a,b,c,d,e,f))

这看起来像 John Zwinck 的回答,但不需要辅助函数。

关于比较几个整数值是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052119/

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