Kısa Devre Tespiti

Sosyal medyada paylaşın

Bir ifadede operant veya operatörlerin tüm hesaplamalarını yapmaksızın sonucun bulunmasıdır.​

int sum = (13 * a) * (b / 13 – 1)​

Eğer a=0 ise, diğer kısmı hesaplamaya gerek yok. Çünkü sonuç her halükarda sıfır olacaktır. Bu özellik günümüzde çoğu derleyicide vardır ve derleyicinin yükünü azaltır. Derleyici 0 ile bir şeyin çarpımının sıfır olacağını anlayıp geri kalan işlemleri hesaplamadan yoluna devam eder.

Kısa devre için bir işlemin sonucunun sıfır olması şart değildir. Buradaki amacımız bir işlemi yaptıktan sonra diğerine gerek duymamasıdır. Başka bir örnek verelim;

(a > b) || (b++ / 3)​

Kısa devre tespiti ifadelerdeki potansiyel yan etki problemini ortaya çıkarabilir. Örneğin burda a b’den büyükse arada veya operandı olduğu için sağ taraftaki işlemi yapmayacak ve b değeri asla artmayacaktır.

Kimse böyle bir kod yazmaz ama örnek amaçlı vereyim dedim 🙂 Umarım yardımcı olabilmişimdir, iyi çalışmalar.