Aktywne Wpisy

źródło: temp_file2871879713966938408
Pobierz
SzubiDubiDu +347
Kto wczoraj otworzył maskę w aucie przez dziwne stuki z okolicy silnika? Ja
Kto odkrył, że na jego silniku zasnął jakiś kot? Ja
Kto patrzył jak kot #!$%@? od jednego auta prosto pod drugie? Ja
Kto jak debil próbował przekupić kota parówką aby wyszedł spod tamtego auta? Ja
Kto pojechał na zakupy i wracając odkrył, że kot zdążył się zaklinować pod drugim autem? Ja
Kto próbował wyciągnąć kota wciśniętego w zawieszenie przez
Kto odkrył, że na jego silniku zasnął jakiś kot? Ja
Kto patrzył jak kot #!$%@? od jednego auta prosto pod drugie? Ja
Kto jak debil próbował przekupić kota parówką aby wyszedł spod tamtego auta? Ja
Kto pojechał na zakupy i wracając odkrył, że kot zdążył się zaklinować pod drugim autem? Ja
Kto próbował wyciągnąć kota wciśniętego w zawieszenie przez
źródło: dupek1
Pobierz




if```**```
((i-1)/2 > 0)
```**```
return
```**```
(i-1)/2;
```**```
else
```****```
return
```**```
0;
to (i-2)/2 się optymalizuje jakoś, czy jest liczone dwa razy? #programowanie #cpp
return ((i-1)/2 > 0) ? (i-1)/2 : 0;tak raz policzy?
Możemy to sprawdzić, np. tutaj: http://assembly.ynh.io/ (pamiętaj, żeby włączyć opcję optymalizacji).
Po sprawdzeniu w narzędziu podanym powyżej wynika, że kompilator faktycznie nie liczy tej wartości dwa razy, ale stosując trójargumentowy operator warunkowy zyskaliśmy na innej, bardzo ważnej rzeczy: całkowicie pozbyliśmy się branchingu na rzecz instrukcji z rodziny CMOV (co prawdopodobnie da większy
o tym niestety nawet nigdy nie słyszałem :P