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

  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008