Aracılığıyla paylaş


Yerleşik türler (C++)

Yerleşik türler (temel türler olarak da adlandırılır) C++ dil standardı tarafından belirtilir ve derleyicide yerleşik olarak bulunur. Yerleşik türler hiçbir üst bilgi dosyasında tanımlanmamıştır. Yerleşik türler üç ana kategoriye ayrılır: integral, kayan nokta ve void. İntegral türleri tam sayıları gösterir. Kayan nokta türleri kesirli bölümleri olabilecek değerleri belirtebilir. Çoğu yerleşik tür, derleyici tarafından ayrı türler olarak değerlendirilir. Ancak, bazı türler eş anlamlıdır veya derleyici tarafından eşdeğer türler olarak değerlendirilir.

Geçersiz tür

türü void boş bir değer kümesini açıklar. Tür void değişkeni belirtilemiyor. Türü void öncelikle değer döndürmeyen işlevleri bildirmek veya yazılmamış veya rastgele yazılan verilere genel işaretçiler bildirmek için kullanılır. Herhangi bir ifade açıkça dönüştürülebilir veya türüne voiddönüştürülebilir. Ancak, bu tür ifadeler aşağıdaki kullanımlarla sınırlıdır:

  • İfade deyimi. (Daha fazla bilgi için bkz. İfadeler.)

  • Virgül işlecinin sol işleneni. (Daha fazla bilgi için bkz. Virgül İşleci.)

  • Koşullu işlecin (? :) ikinci veya üçüncü işleneni. (Daha fazla bilgi için bkz. Koşullu İşleçli ifadeler.)

std::nullptr_t

anahtar sözcüğü nullptr , herhangi bir ham işaretçi türüne std::nullptr_tdönüştürülebilen türünde bir null işaretçi sabitidir. Daha fazla bilgi için bkz. nullptr.

Boole türü

türü bool ve falsedeğerlerine true sahip olabilir. Türün bool boyutu uygulamaya özgüdür. Microsoft'a özgü uygulama ayrıntıları için bkz . Yerleşik türlerin boyutları.

Karakter türleri

tür char , temel yürütme karakter kümesinin üyelerini verimli bir şekilde kodlayan bir karakter gösterimi türüdür. C++ derleyicisi, , signed charve unsigned char türündeki chardeğişkenleri farklı türlerde olarak ele alır.

Microsoft'a özgü: Derleme seçeneği kullanılmadığı sürece /J tür değişkenleri char varsayılan olarak türdeki signed char gibi yükseltilir.int Bu durumda, bunlar tür unsigned char olarak değerlendirilir ve işaret uzantısı olmadan olarak int yükseltilir.

Tür wchar_t değişkeni, geniş karakterli veya çok baytlı bir karakter türüdür. L Geniş karakter türünü belirtmek için bir karakterden veya dize değişmez değerden önceki ön eki kullanın.

Microsoft'a özgü: Varsayılan olarak, wchar_t yerel bir türdür, ancak için bir tür tanımı yapmak wchar_t için unsigned shortkullanabilirsiniz/Zc:wchar_t-. Türü __wchar_t , yerel wchar_t tür için Microsoft'a özgü bir eş anlamlıdır.

Türü char8_t UTF-8 karakter gösterimi için kullanılır. ile aynı temsile unsigned charsahiptir, ancak derleyici tarafından ayrı bir tür olarak değerlendirilir. Türü char8_t C++20'de yenidir. Microsoft'a özgü: kullanımı char8_t için derleyici seçeneği veya üstü gerekir /std:c++20 (örneğin /std:c++latest).

Türü char16_t UTF-16 karakter gösterimi için kullanılır. Herhangi bir UTF-16 kod birimini temsil edecek kadar büyük olmalıdır. Derleyici tarafından ayrı bir tür olarak değerlendirilir.

Türü char32_t UTF-32 karakter gösterimi için kullanılır. Herhangi bir UTF-32 kod birimini temsil edecek kadar büyük olmalıdır. Derleyici tarafından ayrı bir tür olarak değerlendirilir.

Kayan nokta türleri

Kayan nokta türleri, çok çeşitli büyüklükler üzerinde kesirli değerlerin yaklaşık değerini sağlamak için bir IEEE-754 gösterimi kullanır. Aşağıdaki tabloda C++ dilinde kayan nokta türleri ve kayan nokta türü boyutlarına yönelik karşılaştırmalı kısıtlamalar listelenmiştir. Bu kısıtlamalar C++ standardı tarafından zorunlu kılındı ve Microsoft uygulamasından bağımsızdır. Yerleşik kayan nokta türlerinin mutlak boyutu standartta belirtilmez.

Tür İçindekiler
float Tür float , C++ dilindeki en küçük kayan nokta türüdür.
double Tür double , türünden büyük veya buna eşit, ancak türünden floatdaha kısa veya boyutuna eşit kayan bir nokta türüdür long double.
long double Tür long double , türünden büyük veya buna eşit bir kayan nokta türüdür double.

Microsoft'a özgü: ve double gösterimi long double aynıdır. Ancak ve double derleyici long double tarafından ayrı türler olarak değerlendirilir. Microsoft C++ derleyicisi 4 ve 8 baytlık IEEE-754 kayan nokta gösterimlerini kullanır. Daha fazla bilgi için bkz . IEEE kayan nokta gösterimi.

Tam sayı türleri

Tür int , varsayılan temel tamsayı türüdür. Uygulamaya özgü bir aralıktaki tüm sayıları temsil edebilir.

İmzalı tamsayı gösterimi, hem pozitif hem de negatif değerleri tutabilen bir gösterimdir. Varsayılan olarak veya değiştirici anahtar sözcüğü mevcut olduğunda signed kullanılır. unsigned değiştirici anahtar sözcüğü, yalnızca negatif olmayan değerleri tutabilen imzasız bir gösterimi belirtir.

Boyut değiştirici, kullanılan tamsayı gösteriminin bit cinsinden genişliğini belirtir. Dil , longve long long değiştiricilerini desteklershort. Bir short tür en az 16 bit genişliğinde olmalıdır. Bir long tür en az 32 bit genişliğinde olmalıdır. Bir long long tür en az 64 bit genişliğinde olmalıdır. Standart, integral türleri arasında bir boyut ilişkisi belirtir:

1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

Bir uygulamanın her tür için hem minimum boyut gereksinimlerini hem de boyut ilişkisini koruması gerekir. Ancak gerçek boyutlar uygulamalar arasında farklılık gösterebilir ve değişiklik gösterebilir. Microsoft'a özgü uygulama ayrıntıları için bkz . Yerleşik türlerin boyutları.

int, , unsignedveya boyut değiştiricileri belirtildiğinde signedanahtar sözcük atlanabilir. Değiştiriciler ve int tür varsa, herhangi bir sırada görünebilir. Örneğin, short unsigned aynı unsigned int short türe başvurun.

Tamsayı türü eş anlamlıları

Aşağıdaki tür grupları derleyici tarafından eş anlamlı olarak kabul edilir:

  • 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

Microsoft'a özgü tamsayı türleri, belirli genişlik __int8, __int16, __int32ve __int64 türlerini içerir. Bu türler ve unsigned değiştiricilerini signed kullanabilir. __int8 Veri türü, türüyle char__int16 eş anlamlıdır, türüyle shorteş anlamlıdır, __int32 türüyle inteş anlamlıdır ve __int64 türüyle long longeş anlamlıdır.

Yerleşik türlerin boyutları

Çoğu yerleşik türün uygulama tanımlı boyutları vardır. Aşağıdaki tabloda, Microsoft C++'daki yerleşik türler için gereken depolama alanı miktarı listelenmiştir. Özellikle, long 64 bit işletim sistemlerinde bile 4 bayttır.

Tür Size
bool, char, char8_t, unsigned char, signed char, __int8 1 bayt
char16_t, __int16, short, unsigned short, wchar_t, __wchar_t 2 bayt
char32_t, float, __int32, int, unsigned int, long, unsigned long 4 bayt
double, __int64, long double, long long, unsigned long long 8 bayt

Her türün değer aralığının özeti için bkz. Veri türü aralıkları.

Tür dönüştürme hakkında daha fazla bilgi için bkz . Standart dönüştürmeler.

Ayrıca bkz.

Veri türü aralıkları