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

  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • technodromeband's channel

    technodromeb

    28 NİSAN 2011
  • thenewboston

    thenewboston

    4 ŞUBAT 2008