Aracılığıyla paylaş


Yan Etkiler

İfadelerin değerlendirme sırası, dilin belirli bir değerlendirme sırasını garanti etmesi (Öncelik ve Değerlendirme Sırası'nda belirtildiği gibi) dışında, belirli uygulama tarafından tanımlanır. Örneğin, yan etkiler aşağıdaki işlev çağrılarında oluşur:

add( i + 1, i = j + 2 );
myproc( getc(), getc() );

İşlev çağrısının bağımsız değişkenleri herhangi bir sırada değerlendirilebilir. İfade i + 1 , öncesinde i = j + 2veya i = j + 2 öncesinde i + 1değerlendirilebilir. Sonuç her durumda farklıdır. Benzer şekilde, gerçekte hangi karakterlerin öğesine geçirildiğini garanti etmek myprocmümkün değildir. Birli artış ve azaltma işlemleri atamaları içerdiğinden, bu tür işlemler aşağıdaki örnekte gösterildiği gibi yan etkilere neden olabilir:

x[i] = i++;

Bu örnekte, değiştirilen değeri x tahmin edilemez. Alt simgenin değeri yeni veya eski değeri iolabilir. Sonuç, farklı derleyiciler veya farklı iyileştirme düzeyleri altında farklılık gösterebilir.

C, yan etkilerin değerlendirme sırasını tanımlamadığından, yukarıda açıklanan her iki değerlendirme yöntemi de doğrudur ve uygulanabilir. Kodunuzun taşınabilir ve net olduğundan emin olmak için, yan etkiler için belirli bir değerlendirme sırasına bağlı deyimlerden kaçının.

Ayrıca bkz.

İfade Değerlendirme