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

  • FF Radio

    FF Radio

    16 Mayıs 2008
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • NYLON Video

    NYLON Video

    11 Aralık 2006