SORU
16 Mart 2009, PAZARTESİ


Neden ifade edemiyor dizeleri uygulanacak geçiş?

int main()
{
    switch(std::string("raj")) //Compilation error - switch expression of type illegal 
    {
    case"sda":
    }

}

CEVAP
16 Mart 2009, PAZARTESİ


Neden tür sistemi ile bir ilgisi yoktur. C/C gerçekten bir tür olarak dizeleri desteklemiyor. Sürekli char bir dizi fikri destekliyor ama gerçekten tam bir dize kavramını anlamıyor.

Bir switch deyimi için kod üretmek için derleyici iki değer eşit olmanın ne demek olduğunu anlamak gerekir. Değer vermez ve çeteleler gibi öğeler için, bu önemsiz bit bir karşılaştırma. Ama nasıl derleyici 2 string değerleri karşılaştırmak gerekir? Büyük / küçük harf duyarlı, duyarsız, kültür farkında, vb ... bir dize tam bir farkındalık Olmadan bu olamaz doğru cevap.

Ayrıca, C/C deyimleri genellikle branch tables olarak üretilen geçin. Dize bir stil geçiş için şube bir tablo oluşturmak için yaklaşık olarak kolay değil.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007
  • ParryGripp

    ParryGripp

    12 AĞUSTOS 2006