Czasami if
instrukcja może być dość skomplikowana lub długa, dlatego ze względu na czytelność lepiej jest wyodrębnić skomplikowane wywołania przed rozszerzeniem if
.
np. to:
if (SomeComplicatedFunctionCall() || OtherComplicatedFunctionCall())
{
// do stuff
}
zaangażowany w to
bool b1 = SomeComplicatedFunctionCall();
bool b2 = OtherComplicatedFunctionCall();
if (b1 || b2)
{
//do stuff
}
(podany przykład nie jest taki zły, to tylko dla ilustracji ... wyobraź sobie inne wywołania z wieloma argumentami itp.)
Ale z tym wydobyciem straciłem ocenę zwarcia (SCE).
- Czy naprawdę tracę SCE za każdym razem? Czy istnieje scenariusz, w którym kompilator może go „zoptymalizować” i nadal zapewniać SCE?
- Czy istnieją sposoby na utrzymanie lepszej czytelności drugiego fragmentu bez utraty SCE?