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

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • SDSARG3

    SDSARG3

    14 Mart 2009
  • TSE

    TSE

    12 Kasım 2012