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

  • bunliu

    bunliu

    2 Mayıs 2007
  • jbignacio

    jbignacio

    13 Mart 2006
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006