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在精确测量之前,很难说这一点。“但我认为在现代编译器上不会有太大变化。”大卫