use*_*923 2 c++ optimization evaluation logical-operators conditional-statements
1.Imagine条件if (obj.is_x() || obj.is_y() || obj.is_z())
将obj.is_y()和obj.is_z()被调用,如果评估obj.is_x()返回真的吗?
这个坏主意(一般来说)?这段代码看起来不好吗?
bool isbn13_prefix_valid (const string& prefix)
{
unsigned num = stoi(prefix);
if (num == 978 || num == 979) return 1; //super common ones
else if ( num >= 0 && num <= 5 || num == 7 || num >= 600 && num <= 649
|| num >= 80 && num <= 94 || num >= 950 && num <= 989
|| num >= 9900 && num <= 9989 || num >= 99900 && num <= 99999)
return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)