セイ関数に "int"または "bool"の形式でフラグを渡すと、パフォーマンスが向上しますか?
より高度な実装になります呼び出し関数の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-conditionでの比較のためにboolを取ることでパフォーマンスの影響はあまりないと確信しています。しかし私の場合、私は整数としてフラグを持っています。この場合、2番目の被災者に行く価値はありますか?
より論理的です。性能に違いはありません。 – Naveen
もし 'value == variable'が' == 'の代わりに' = 'を書くのを助けることができたとしても、最近は少しプロフェッショナルであると考えられます。ヨーダの比較、彼らはあります。もう必要ではありません。可読性が低下します。 – Griwes
典型的なプラットフォームでは、 'if(1 == flag)'の代わりに 'if(flag!= 0)'(または単に 'if(flag)')を使用すると、生成されるコードは 'bool' 。コンパイラはフラグのための唯一の正当な値である '1'と' 0'を知ることができません。 –