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

  • bcbauer

    bcbauer

    7 ŞUBAT 2007
  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • WK

    WK

    9 Ocak 2006