Jenis bawaan (C++)
Jenis bawaan (juga disebut jenis dasar) ditentukan oleh standar bahasa C++ dan dibangun ke dalam pengkompilasi. Jenis bawaan tidak ditentukan dalam file header apa pun. Jenis bawaan dibagi menjadi tiga kategori utama: integral, floating-point, dan void. Jenis integral mewakili bilangan bulat. Jenis titik mengambang dapat menentukan nilai yang mungkin memiliki bagian pecahan. Sebagian besar jenis bawaan diperlakukan sebagai jenis yang berbeda oleh pengkompilasi. Namun, beberapa jenis adalah sinonim, atau diperlakukan sebagai jenis yang setara oleh pengompilasi.
Jenis Kosong
Jenis ini void
menjelaskan sekumpulan nilai kosong. Tidak ada variabel jenis void
yang dapat ditentukan. Jenis ini void
digunakan terutama untuk mendeklarasikan fungsi yang tidak mengembalikan nilai atau untuk mendeklarasikan penunjuk generik ke data yang tidak diketik atau diketik secara seketika. Ekspresi apa pun dapat dikonversi atau ditransmisikan secara eksplisit ke jenis void
. Namun, ekspresi tersebut dibatasi untuk penggunaan berikut:
Pernyataan ekspresi. (Untuk informasi selengkapnya, lihat Ekspresi.)
Operan kiri operator koma. (Untuk informasi selengkapnya, lihat Operator Koma.)
Operand kedua atau ketiga dari operator bersyarah (
? :
). (Untuk informasi selengkapnya, lihat Ekspresi dengan Operator Bersyar.)
std::nullptr_t
Kata kunci nullptr
adalah konstanta null-pointer jenis std::nullptr_t
, yang dapat dikonversi ke jenis pointer mentah apa pun. Untuk informasi selengkapnya, lihat nullptr
.
Jenis Boolean
Jenisnya bool
dapat memiliki nilai true
dan false
. Ukuran jenisnya bool
khusus implementasi. Lihat Ukuran jenis bawaan untuk detail implementasi khusus Microsoft.
Jenis karakter
Jenisnya char
adalah jenis representasi karakter yang secara efisien mengodekan anggota set karakter eksekusi dasar. Pengkompilasi C++ memperlakukan variabel jenis char
, , signed char
dan unsigned char
memiliki jenis yang berbeda.
Khusus Microsoft: Variabel jenis char
dipromosikan ke int
seolah-olah dari jenis signed char
secara default, kecuali /J
opsi kompilasi digunakan. Dalam hal ini, mereka diperlakukan sebagai jenis unsigned char
dan dipromosikan tanpa int
ekstensi tanda tangan.
Variabel jenis wchar_t
adalah jenis karakter lebar atau karakter multibyte. Gunakan awalan L
sebelum karakter atau string literal untuk menentukan jenis karakter lebar.
Khusus Microsoft: Secara default, wchar_t
adalah jenis asli, tetapi Anda dapat menggunakan /Zc:wchar_t-
untuk membuat wchar_t
typedef untuk unsigned short
. Jenisnya __wchar_t
adalah sinonim khusus Microsoft untuk jenis aslinya wchar_t
.
char8_t
Jenis ini digunakan untuk representasi karakter UTF-8. Ini memiliki representasi yang sama dengan unsigned char
, tetapi diperlakukan sebagai jenis yang berbeda oleh pengkompilasi. char8_t
Jenisnya baru di C++20. Khusus Microsoft: penggunaan char8_t
memerlukan /std:c++20
opsi pengkompilasi atau yang lebih baru (seperti /std:c++latest
).
Jenis ini char16_t
digunakan untuk representasi karakter UTF-16. Ini harus cukup besar untuk mewakili unit kode UTF-16 apa pun. Ini diperlakukan sebagai jenis yang berbeda oleh kompilator.
char32_t
Jenis ini digunakan untuk representasi karakter UTF-32. Ini harus cukup besar untuk mewakili unit kode UTF-32 apa pun. Ini diperlakukan sebagai jenis yang berbeda oleh kompilator.
Jenis titik mengambang
Jenis titik mengambang menggunakan representasi IEEE-754 untuk memberikan perkiraan nilai pecahan di atas berbagai besaran. Tabel berikut mencantumkan jenis titik mengambang di C++ dan batasan komparatif pada ukuran jenis titik mengambang. Pembatasan ini diamanatkan oleh standar C++ dan tidak bergantung pada implementasi Microsoft. Ukuran absolut jenis floating-point bawaan tidak ditentukan dalam standar.
Jenis | Konten |
---|---|
float |
Jenis float adalah jenis titik mengambang terkecil di C++. |
double |
Jenis double adalah jenis titik mengambang yang lebih besar dari atau sama dengan jenis float , tetapi lebih pendek dari atau sama dengan ukuran jenis long double . |
long double |
Jenis long double adalah jenis titik mengambang yang lebih besar dari atau sama dengan jenis double . |
Khusus Microsoft: Representasi long double
dan double
identik. Namun, long double
dan double
diperlakukan sebagai jenis yang berbeda oleh pengkompilasi. Pengkompilasi Microsoft C++ menggunakan representasi titik mengambang 4 dan 8 byte IEEE-754. Untuk informasi selengkapnya, lihat representasi titik mengambang IEEE.
Jenis bilangan bulat
Jenisnya int
adalah jenis bilangan bulat dasar default. Ini dapat mewakili semua angka secara keseluruhan melalui rentang khusus implementasi.
Representasi bilangan bulat yang ditandatangani adalah representasi yang dapat menyimpan nilai positif dan negatif. Ini digunakan secara default, atau saat kata kunci pengubah signed
ada. Kata unsigned
kunci pengubah menentukan representasi yang tidak ditandatangani yang hanya dapat menyimpan nilai non-negatif.
Pengubah ukuran menentukan lebar dalam bit representasi bilangan bulat yang digunakan. Bahasa ini mendukung short
pengubah , long
, dan long long
. Jenis short
harus memiliki lebar minimal 16 bit. Jenis long
harus memiliki lebar minimal 32 bit. Jenis long long
harus memiliki lebar minimal 64 bit. Standar menentukan hubungan ukuran antara jenis integral:
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Implementasi harus mempertahankan persyaratan ukuran minimum dan hubungan ukuran untuk setiap jenis. Namun, ukuran aktual dapat dan bervariasi di antara implementasi. Lihat Ukuran jenis bawaan untuk detail implementasi khusus Microsoft.
Kata int
kunci dapat dihilangkan ketika signed
pengubah ukuran , unsigned
, atau ditentukan. Pengubah dan int
jenis, jika ada, dapat muncul dalam urutan apa pun. Misalnya, short unsigned
dan unsigned int short
lihat jenis yang sama.
Sinonim jenis bilangan bulat
Grup jenis berikut dianggap sinonim oleh pengompilasi:
short
,short int
,signed short
,signed short int
unsigned short
,unsigned short int
int
,signed
,signed int
unsigned
,unsigned int
long
,long int
,signed long
,signed long int
unsigned long
,unsigned long int
long long
,long long int
,signed long long
,signed long long int
unsigned long long
,unsigned long long int
Jenis bilangan bulat khusus Microsoft mencakup jenis , , __int16
, __int32
dan __int64
lebar __int8
tertentu. Jenis-jenis ini dapat menggunakan signed
pengubah dan unsigned
. Jenis data __int8
identik dengan jenis char
, __int16
identik dengan jenis short
, __int32
identik dengan jenis int
, dan __int64
identik dengan jenis long long
.
Ukuran jenis bawaan
Sebagian besar jenis bawaan memiliki ukuran yang ditentukan implementasi. Tabel berikut mencantumkan jumlah penyimpanan yang diperlukan untuk jenis bawaan di Microsoft C++. Secara khusus, long
adalah 4 byte bahkan pada sistem operasi 64-bit.
Jenis | Ukuran |
---|---|
bool , char , char8_t , unsigned char , signed char , __int8 |
1 byte |
char16_t , __int16 , short , unsigned short , wchar_t , __wchar_t |
2 byte |
char32_t , float , __int32 , int , unsigned int , long , unsigned long |
4 byte |
double , __int64 , long double , long long , unsigned long long |
8 byte |
Lihat Rentang jenis data untuk ringkasan rentang nilai dari setiap jenis.
Untuk informasi selengkapnya tentang konversi jenis, lihat Konversi standar.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk