Karşılaştırma Tablosu:
Karşılaştırma için temel | Türü Döküm | Türü Dönüştürme |
---|---|---|
anlam | Bir veri tipi kullanıcı tarafından bir döküm operatörü kullanılarak bir başkasına atanır ve daha sonra "Tip Döküm" olarak adlandırılır. | Derleyici tarafından bir veri türünün diğerine otomatik olarak dönüştürülmesi "Tür Dönüştürme" olarak adlandırılır. |
Uygulamalı | Tip döküm, iki 'uyumsuz' veri türüne de uygulanabilir. | Tip dönüşümü sadece iki veri tipi 'uyumlu' olduğunda uygulanabilir. |
Şebeke | Bir veri tipini bir başkasına dökmek için bir döküm operatörü '()' gereklidir. | Operatör gerekli değil. |
Veri Türlerinin Boyutu | Hedef tipi, kaynak türünden daha küçük olabilir. | Burada, hedef tipi kaynak türünden daha büyük olmalıdır. |
Uygulanan | Program tasarımı sırasında yapılır. | Derleme yapılırken açıkça yapılır. |
Dönüşüm türü | Daraltma dönüşümü. | Dönüşümün genişletilmesi. |
Örnek | int a; bayt b; ... ... b = (bayt) a; | int a = 3; şamandıra b; b =; // b = 3, 000'deki değer. |
Tip Döküm Tanımı
Tip döküm, program tasarımı sırasında, programcı tarafından bir veri tipinin başka bir veri tipine dökümü olarak tanımlanabilir. Bir veri türünün diğerine otomatik olarak dönüştürülmesi, her zaman mümkün değildir. 'Hedef tipinin' 'kaynak tipinden' daha küçük olması şartı olabilir; bu nedenle, programcı, döküm operatörünü '()' kullanarak açıkça daha büyük veri tipini daha küçük veri tipine yönlendirmelidir. Daha büyük veri türü daha küçük veri türüne göre modüle edildiğinden, buna "daraltma dönüşümü" de denir.
destination_type = (target_type) değişken / değer // hedef türü, kaynak türünü dönüştürmek istediğiniz türdür, her zaman hedef türdür.
Bunu bir örnekle anlayalım. 'İnt' veri türünü 'byte' haline dönüştürmek istiyorsunuz, şimdi, 'byte' 'int'den daha küçük olduğundan, tür dönüştürmeye izin verilmez. Burada, 'int' işlevini döküm işleci '()' kullanarak dolaylı olarak 'bayt' haline getirmek zorunda kaldık. 'İnt', 'byte' değerinden daha büyük olduğundan, 'int' boyutu “int mod byte” aralığına indirgenir.
int a; bayt b; ... ... b = (bayt) a;
'Float' 'int' ye dönüştürüldüğünde, 'int' kesirli değeri saklamadığı için float boyutu kesiliyor. Hedef türün boyutu, kaynak türünün sığmayacağı kadar küçükse, kaynak türü modulo hedef türü 'aralık' olur. Döküm, veri tipleri uyumlu olduğunda da uygulanabilir, tip dönüşümünün gerekli olduğu yerlerde tip dökümünü kullanmak iyi bir uygulamadır.
Tür Dönüşümünün Tanımı
Tür dönüştürme, gerektiğinde derleyici tarafından açıkça yapıldığında bir veri türünün diğerine otomatik olarak dönüştürülmesidir. Ancak tür dönüştürmeden önce yerine getirilmesi gereken iki koşul vardır.
- Kaynak ve hedef tipi uyumlu olmalıdır.
- Hedef tipi, kaynak türünden daha büyük olmalıdır.
Bu iki koşul, tür dönüştürmeyi sağlamak için yeterli olmalıdır ve bu tür dönüştürmeye, daha küçük bir tür daha büyük bir türe dönüştürüldüğü için, tür genişletme gerçekleştiği için 'genişleme dönüşümü' olarak adlandırılır. Bu genişleme dönüşümü için 'int', 'float' gibi sayısal türler birbirleriyle uyumluyken, char ve boolean için sayısal veya char to boolean için de uyumlu değildir.
Bu örnek, daha iyi bir görüş sağlayacaktır
int a = 3; şamandıra b; b =; // b = 3, 000'deki değer.
Burada, 'int', 'int' değerinden daha büyük olan 'float' değerine dönüştürülür, bu nedenle kaynak türünün genişlemesi meydana gelir. Burada, derleyici açıkça yapacağı için, hiçbir döküm operatörü gerekmez.
Tip Döküm ve Dönüşüm Arasındaki Temel Farklılıklar
- Tip dökümünü tip dönüşümünden ayıran temel fark, tip dökümünün programcı tarafından yapılan bir tipin diğerine dönüşüm olmasıdır. Öte yandan, tür dönüşümü derleme sırasında derleyici tarafından yapılan bir türden diğerine dönüşümdür.
- Tip dökümü, birbiriyle uyumlu olmayan veri tiplerine uygulanabilir, ancak tip dönüşümü yalnızca birbiriyle uyumlu olan veri tiplerine uygulanabilir.
- Tip dökümünde bir türün diğerine dönüştürülmesi, döküm operatörünün “()” olmasını gerektirir, tür dönüşümünde bir veri türünün diğerine dönüştürülmesi için herhangi bir operatör gerekmez.
- Tip dökümünde bir veri türünü diğerine dönüştürürken, hedef tür kaynak türden daha büyük veya daha küçük olabilir. Diğer taraftan, hedef türünün tür dönüştürmedeki kaynak türden daha büyük olması gerekir.
- Tip dökümünde kodlama yapılırken bir türün başka bir türe dönüşmesi yapılırken, tür dönüşümünde bir türün diğerine dönüşümü derleme sırasında açıkça yapılır.
- Tür dökümüne daraltma dönüşümü denir, çünkü burada hedef tür kaynak türünden daha küçük olabilir, oysa tür dönüşümüne genişleme dönüşüm denir, çünkü burada tür türünün kaynak türünden daha büyük olması gerekir.
Sonuç:
Tip dönüşümü ve tip dökümünün hem bir veri tipini diğerine dönüştürme görevini yerine getirdiği, hem de tip dökümünün programcı tarafından cast operatörü '()' kullanılarak ve tip dönüşümünün '' operatörü '' kullanılarak yapıldığı anlamında farklı olduğu sonucuna varılabilir. derleyici ve herhangi bir operatör kullanmıyor.