Visual C++、デバッグ モード。
if(k>=0)
011D14CE cmp dword ptr [k],0
011D14D2 jl bez+28h (11D14D8h)
return true;
011D14D4 mov al,1
011D14D6 jmp bez+33h (11D14E3h)
return false;
011D14D8 xor al,al
011D14DA jmp bez+33h (11D14E3h)
そして等しいコード:
return (k>=0)?(true):(false);
011D14DC cmp dword ptr [k],0
011D14E0 setge al
何が速いですか?関数呼び出しで 2 番目の構造を使用すると、どちらが高速になりますか?
if(i>0)
Foo(true);
else
Foo(false);
または:
Foo((i>0)?(true):(false))
?