SORU
7 Temmuz 2014, PAZARTESİ


Neden't bazı durumlarda bir int ve char ekleyebilirsiniz?

Neden yapar

char ch = '4';
ch = '4'   2;

iş, ama

char ch = '4';
ch = ch    2;

değil mi?

CEVAP
7 Temmuz 2014, PAZARTESİ


Bu, lets anlamak için derleyici her iki olasılık için her adımda ne yaptığını düşünün. İle başlayalım:

ch = '4'   2;

Derleyici '4' int ' e çevirir. Olur

ch = 52   2;

Derleyici o zaman dönüşür

ch = 54;

ch char ve derleyici dönüşüm kaybı yok olduğunu kanıtlamak gibi bir char 54 dönüştürmek için izin verilir.

Şimdi ikinci versiyonunu düşünün sağlar:

ch = ch    2;

ch derleme zamanında bilinen bir değeri vardır. Böylece bu olur

ch = ((int) ch)   2;

Şimdi derleyici bu sonucu (bir int) char aralığında depolanabilir olduğunu kanıtlamak. Bu yüzdendeğilotomatik olarak dar ve bir hata olarak bildiriyor.

EDİT1:

Eğer derleyici bu değişken hiç değişmeyecek kanıtlayabilirim, ve inlineable. Sonra ikinci formu ilk haline olabilir. Subir de sözlerine ekledi 'son' bu mümkün olur. dikkat çekti Eğer bir derleyici değiştirmek analizi gerçekleştirmek için, eğer endam yetenekli olmasına rağmen bu Son kelime bile etmeden, ama son derleyici ve kod okuyucular için daha kolay yapar.

EDİT2:

İnt daralması Java Language Spec link alınmıştır char için lütfen Jon Skeet tarafından sağlandı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Disney Pets and Animals

    Disney Pets

    29 ŞUBAT 2012
  • Mr. H

    Mr. H

    1 Temmuz 2012
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007