Bagikan melalui


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 chardan 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 shortpengubah , 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 signedpengubah 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, __int32dan __int64 lebar __int8tertentu. 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

Rentang jenis data