Görünüşe göre ilk kesimimde bir cevapta yanılmışım. Onlar kabaca eşdeğerdir. long long
veya void *
gibi bileşik türü adları (yani long long(val)
çalışmıyor) doğrudan işlevsel sözdizimi kullanamazsınız ederken, typedef
kullanarak bu soruna alabilirsiniz.
Her iki döküm işareti de çok kötü ve kaçınılmalıdır. Örneğin,
çalışır ve yapılmamalıdır.
İkisi C tarzı döküm notasyonu bazen bazen
reinterpret_cast
gibi
const_cast
gibi bazen
static_cast
gibi davranır, ya da kullanılan tam o duruma göre iki hatta bir kombinasyon olacaktır. Bu semantikler oldukça karmaşıktır ve herhangi bir durumda neler olup bittiğini tam olarak söylemek her zaman kolay değildir.
Çoğunlukla C++ static_cast<type>(val)
tarzı atmalarını kullanarak gitmiş ve asla C tarzı atmalarını kullanmak var. Bu soruya yaptığım araştırmaya dayanarak, her şey için işlev stili yayınları kullanmayı da bırakacağım. "C++ cast syntax styles" sorusu, bunun nedenini açıklayan mükemmel bir cevaba (kabul edilene) sahiptir.
bakınız: http://stackoverflow.com/questions/32168/c-cast-syntax-styles –