比如说,我有一个如下所示的函数
void caller()
{
int flag = _getFlagFromConfig();
//this is a flag, which according to the implementation
//is supposed to have only two values, 0 and 1 (as of now)
callee_1(flag);
callee_2(1 == flag);
}
void callee_1(int flag)
{
if (1 == flag)
{
//do operation X
}
}
void callee_2(bool flag)
{
if (flag)
{
//do operation X
}
}
哪个被调用函数的实现更好?
我已经完成了这个link而且我非常相信,在 if 条件下使用 bool 进行比较不会对性能产生太大影响。但就我而言,我将标志作为整数。在这种情况下,第二个被调用者是否值得?
最佳答案
它不会在性能方面产生任何差异,但在可读性方面,如果只有 2 个值,那么 bool
更有意义。特别是如果您将标志命名为像 isFlagSet
这样合理的名称。
关于c++ - 将 "int"或 "bool"形式的标志传递给函数,在性能方面是否更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329137/