Konversi Type-Cast
Anda dapat menggunakan jenis cast untuk mengonversi jenis secara eksplisit.
Sintaks
cast-expression
:
unary-expression
(
type-name
)
cast-expression
type-name
:
specifier-qualifier-list
abstract-declarator
Memilih
adalah jenis dan cast-expression
merupakan nilai yang akan dikonversi ke jenis tersebuttype-name
. Ekspresi dengan jenis pemeran bukan nilai l. dikonversi cast-expression
seolah-olah telah ditetapkan ke variabel jenis type-name
. Aturan konversi untuk penugasan (diuraikan dalam Konversi Penugasan) juga berlaku untuk jenis transmisi. Tabel berikut ini memperlihatkan jenis yang bisa ditransmisikan ke jenis tertentu.
Jenis hukum cast
Jenis Tujuan | Sumber Potensial |
---|---|
Jenis integral | Setiap jenis bilangan bulat atau jenis titik mengambang, atau penunjuk ke objek |
Floating-point | Jenis aritmatika apa pun |
Penunjuk ke objek, atau void * |
Jenis bilangan bulat apa pun, void * , penunjuk ke objek, atau penunjuk fungsi |
Penunjuk fungsi | Setiap jenis bilangan bulat, penunjuk ke objek, atau penunjuk fungsi |
Struktur, union, atau array | Tidak |
Jenis Kosong | Jenis apa pun |
Pengidentifikasi apa pun dapat dilemparkan ke void
jenis. Namun, jika jenis yang ditentukan dalam ekspresi type-cast tidak void
, maka pengidentifikasi yang ditransmisikan ke jenis tersebut tidak dapat menjadi void
ekspresi. Ekspresi apa pun dapat dilemparkan ke void
, tetapi ekspresi jenis void
tidak dapat dilemparkan ke jenis lain. Misalnya, fungsi dengan void
jenis pengembalian tidak dapat memiliki transmisi pengembaliannya ke jenis lain.
Ekspresi void *
memiliki penunjuk jenis ke void
, bukan tipe void
. Jika objek ditransmisikan ke void
jenis, ekspresi yang dihasilkan tidak dapat ditetapkan ke item apa pun. Demikian pula, objek type-cast bukan nilai l yang dapat diterima, sehingga tidak ada penugasan yang dapat dilakukan ke objek type-cast.
Khusus Microsoft
Jenis cast dapat berupa ekspresi nilai l selama ukuran pengidentifikasi tidak berubah. Untuk informasi tentang ekspresi nilai l, lihat Ekspresi Nilai-L dan Nilai-R.
END Khusus Microsoft
Anda dapat mengonversi ekspresi untuk diketik void
dengan cast, tetapi ekspresi yang dihasilkan hanya dapat digunakan di mana nilai tidak diperlukan. Penunjuk objek yang dikonversi ke void *
dan kembali ke jenis asli akan kembali ke nilai aslinya.