Aracılığıyla paylaş


Yan etkileri

Dil belirli bir değerlendirme sırasını garanti eder, ifade değerlendirme sırasını belirli uygulama tarafından dışında tanımlanır (ana hatları gibi önceliği ve değerlendirme, sipariş).Örneğin, aşağıdaki işlev çağrıları yan etkileri oluşur:

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

Bir işlev çağrısı bağımsız değişkenleri, herhangi bir sırada değerlendirilebilir.İfade i + 1 önce değerlendirilecek i = j + 2, veya i = j + 2 önce değerlendirilecek i + 1.Sonuç, her durumda farklıdır.Benzer şekilde, hangi karakterleri gerçekte geçirilen garanti mümkün değil myproc.Tekli artırma ve azaltma itibaren operasyonlarını içeren atamaları, aşağıdaki örnekte gösterildiği gibi işlemleri yan etkilere neden olabilir:

x[i] = i++;

Bu örnekte, değeri x yani değişiklik öngörülemeyen olur.Alt indis değerinin yeni veya eski değeri olabilir i.Sonuç olarak farklı derleyiciler veya farklı en iyileştirme düzeylerini altında değişebilir.

c yan etkileri değerlendirme sırasını tanımlamıyor olduğundan, yukarıda açıklanan iki değerlendirme yöntemleri doğru ve ya da uygulanabilir.Kodunuzu taşınabilir ve açık olduğundan emin olmak için belirli bir yan etkileri için değerlendirme sırası bağlıdır ifadeleri kaçının.

Ayrıca bkz.

Kavramlar

İfade değerlendirme (c)