Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 以下两个代码段之间是否存在功能差异?_C++_Return - Fatal编程技术网

C++ 以下两个代码段之间是否存在功能差异?

C++ 以下两个代码段之间是否存在功能差异?,c++,return,C++,Return,以下两个代码段之间是否存在功能差异 bool ColorClass::setTo(int inRed, int inGreen, int inBlue) { amountRed = inRed; amountGreen = inGreen; amountBlue = inBlue; return clipColor(amountRed, amountGreen, amountBlue); } bool ColorClass::

以下两个代码段之间是否存在功能差异

bool ColorClass::setTo(int inRed, int inGreen, int inBlue)   
{
  amountRed = inRed;                     
  amountGreen = inGreen;
  amountBlue = inBlue;

  return clipColor(amountRed, amountGreen, amountBlue);
}


bool ColorClass::setTo(int inRed, int inGreen, int inBlue)   
{
  amountRed = inRed;                     
  amountGreen = inGreen;
  amountBlue = inBlue;

  if (clipColor(amountRed, amountGreen, amountBlue))
  {
    return true;
  }
  else 
  {
    return false;
  }
}
上述代码调用的函数定义如下:

bool ColorClass::clipColor(int &checkRed, int &checkGreen, int &checkBlue) 
{
  int numClips = 0;     //numClips is used to counter number of clips made
  checkColorBounds(checkRed, numClips);
  checkColorBounds(checkGreen, numClips );
  checkColorBounds(checkBlue, numClips);
  return (numClips != 0);
}
void ColorClass::checkColorBounds(int &color, int &clipCounter)
{
  if(color > MAXCOLOR)
  {
    color = MAXCOLOR; 
    clipCounter++;
  }
  else if (color < MINCOLOR)
  {
    color = MINCOLOR;
    clipCounter ++;
  }
}
boolcolorClass::clipColor(int&checkRed、int&checkGreen、int&checkBlue)
{
int numClips=0;//numClips用于计数制作的剪辑数
checkColorBounds(checkRed、numClips);
checkColorBounds(checkGreen、numClips);
checkColorBounds(checkBlue、numClips);
返回值(numClips!=0);
}
void ColorClass::checkColorBounds(int&color,int&clipCounter)
{
如果(颜色>最大颜色)
{
颜色=最大颜色;
clipCounter++;
}
else if(颜色
我对这两个都进行了测试,并且都进行了测试,我似乎没有注意到任何功能上的不同


我更喜欢第一个,因为它更简洁、更高效(避免了if-else)

根本没有任何功能差异。然后使用第一个


没有任何功能上的差异。然后使用第一个


谢谢。你建议使用第一个是因为它更有效(我怀疑它更充分,尽管我不确定)。@David在精确测量之前,很难说这一点。但我认为在现代编译器上不会有太大变化。@David谢谢。你建议使用第一个是因为它更有效(我怀疑它更充分,尽管我不确定)。@David在精确测量之前,很难说这一点。“但我认为在现代编译器上不会有太大变化。”大卫