Zdradliwe komentarze – ku przestrodze
Przeglądając zasoby serwisu Roflcopter znalazłem fragment kodu, który mnie… urzekł. Pomijam już roztrząsanie kwestii, czy ma sens rozwijanie pętli w Javie. Chodzi o to, że autor poniższego kawałka kodu, zabił mnie wygenerowanym przez siebie, jednym z trudniejszych do wykrycia przez tą samą osobę, błędów programisty. Zresztą, spójrzcie sami:
1
2
3
4
5
6
7
8
9
10
for ( j=0; j<array_len; j+=8 ) {
total += array[j+0];
total += array[j+1];
total += array[j+2]; /* Main body of
total += array[j+3]; * loop is unrolled
total += array[j+4]; * for greater speed.
total += array[j+5]; */
total += array[j+6];
total += array[j+7];
}
Niby wszystko w porządku, ale jak to mawiają “Diabeł tkwi w szczegółach” 🙂