jeszcze tylko jeden detal, o którym warto pamiętać
if (a==4 || b>0)
jeśli a jest równe 4, to warunek b>0 nie zostanie w ogóle sprawdzony
if (a==4 && b>0)
jeśli a nie jest równe 4, to warunek b>0 też nie zostanie w ogóle sprawdzony
więc jeżeli masz takie złożone warunki i istnieje ryzyko, że gdzieś możesz mieć np. błędy alokacji w tablicach, wyjście za zakres itp. to lepiej te warunki, które stwarzają wyższe ryzyko błędu dać na początek i oczywiście przetestować we wszystkie możliwe strony, bo taki kod:
Kod: Zaznacz cały
int a = 4, tab[5];
if (a == 4 || tab[10] > 0){
...
}
mimo ewidentnego błędu przejdzie bez problemu i normalnie zadziała, dlatego chcąc być takim purystą języka C należałoby to poprawić na
if (tab[10] > 0 || a == 4)