0
bool comapare(int val)
{
  if(val>5)
   {
     return true;
   }
 return false;
}

int myFunct(int x,int y)
{
  int count = 0;
  count = (int)compare(x) + (int)compare(y);
  return count;
}

我想像上面一样添加布尔值。将其类型转换为最好的方法。任何意见。

4

2 回答 2

3

无需转换值。你可以写

 count = compare(x) + compare(y);

由于整数提升,操作数将提升为类型int,结果也将具有类型int

并且由于计数不能具有负值,因此最好将其声明为具有无符号整数类型,例如size_t或至少unsigned int

函数比较也可以写得更简单

bool comapare(int val)
{
    return val > 5;
}

在 C 中,类型bool是整数类型的 typedef 名称_Bool

于 2022-03-04T22:39:41.363 回答
1

我明白你为什么要这样做,但它读起来令人困惑。顺便说一句,不需要演员表

int myFunct(int x,int y)
{
  int count = 0;
  count = compare(x) + compare(y);
  return count;
}

工作正常,但我会做

int myFunct(int x,int y)
{
   int count = 0;
   if (compare(x)) count++;
   if (compare(y)) count++;

    return count;
 }

意图要清楚得多。

于 2022-03-04T22:36:31.717 回答