SORU
3 Temmuz 2015, Cuma


C switch deyimi ifade değerlendirme garanti

İlgili standart Devletleri aşağıdaki anahtarı.Switch deyimi çalıştırıldığında", durumu değerlendirdi ve her durumda sabit ile karşılaştırılır."

Durumu bir kez ve bir kez sadece hesaplanan ifade, ve her derleyici için standart garanti olduğu anlamına mı geliyor?

Bir fonksiyon anahtarı kullanıldığında yan etki ile örneğin, deyim, kafa,.

int f() { ... }
switch (f())
{
    case ...;
    case ...;
}

CEVAP
3 Temmuz 2015, Cuma


f yalnızca bir kez denir garantili olduğunu düşünüyorum.

İlk var

Durumu bir tamsayı türü, numaralandırma türü, sınıf veya tip olacaktır.

[6.4.2 (1)] (non-integral şeyler burada geçerli değildir), ve

Bir deyim bir durumu değeri değeridir ifade

[6.4 (4)]. Ayrıca

Koşul değeri olarak sadece “koşul” nerede anılacaktır kullanımı anlaşılır.

[6.4 (4)] Bu bizim durumumuzda anlamına gelir, "durum" sadece yazın int, f. düz bir değerdir f tek koşul değerini bulmak için kullanılır. Şimdi ne zaman kontrol switch deyimi ulaşır

onun durumu değerlendirilir

[6.4.2 (5)], yani bizim gibi f tarafından döndürülen int değerini kullanıyoruz "durum". Sonunda durumu tip 9**, f olmayan bir değer)

her durumda sabit ile karşılaştırıldığında

[6.4.2 (5)]. Bu f yan etkileri tekrar tetiklemez.

Tüm N3797 teklif. (Ayrıca N4140, fark) kontrol etti

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kassem G

    Kassem G

    25 EKİM 2006
  • spederson7

    spederson7

    17 Temmuz 2006
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008