Ricerca…


int

Denota un tipo intero con segno con "la dimensione naturale suggerita dall'architettura dell'ambiente di esecuzione", il cui intervallo include almeno da -32767 a +32767, incluso.

int x = 2;
int y = 3;
int z = x + y;

Può essere combinato con unsigned , short , long e long long (qv) per fornire altri tipi interi.

bool

Un tipo intero il cui valore può essere true o false .

bool is_even(int x) {
    return x%2 == 0;
}
const bool b = is_even(47); // false

carbonizzare

Un tipo intero che è "abbastanza grande da memorizzare qualsiasi membro del set di caratteri di base dell'implementazione". È definito dall'implementazione se char è firmato (e ha un intervallo di almeno da -127 a +127, incluso) o senza segno (e ha un intervallo di almeno da 0 a 255, inclusi).

const char zero = '0';
const char one = zero + 1;
const char newline = '\n';
std::cout << one << newline; // prints 1 followed by a newline

char16_t

C ++ 11

Un tipo intero senza segno con le stesse dimensioni e allineamento di uint_least16_t , che è quindi abbastanza grande da contenere un'unità di codice UTF-16.

const char16_t message[] = u"你好,世界\n";            // Chinese for "hello, world\n"
std::cout << sizeof(message)/sizeof(char16_t) << "\n"; // prints 7

char32_t

C ++ 11

Un tipo intero senza segno con le stesse dimensioni e allineamento di uint_least32_t , che è quindi abbastanza grande da contenere un'unità di codice UTF-32.

const char32_t full_house[] = U"🂣🂳🂨🂸🃈";               // non-BMP characters
std::cout << sizeof(full_house)/sizeof(char32_t) << "\n"; // prints 6

galleggiante

Un tipo a virgola mobile. Ha l'intervallo più stretto tra i tre tipi di virgola mobile in C ++.

float area(float radius) {
    const float pi = 3.14159f;
    return pi*radius*radius;
}

Doppio

Un tipo a virgola mobile. La sua gamma include quella del float . Se combinato con long , denota il tipo long double floating point, la cui gamma include quella del double .

double area(double radius) {
    const double pi = 3.141592653589793;
    return pi*radius*radius;
}

lungo

Denota un tipo intero con segno che è lungo almeno quanto int , e il cui intervallo include almeno da -2147483647 a +2147483647, compreso (vale a dire - (2 ^ 31 - 1) su + (2 ^ 31 - 1)). Questo tipo può anche essere scritto come long int .

const long approx_seconds_per_year = 60L*60L*24L*365L;

La combinazione long double indica un tipo a virgola mobile, che ha la gamma più ampia tra i tre tipi a virgola mobile.

long double area(long double radius) {
    const long double pi = 3.1415926535897932385L;
    return pi*radius*radius;
}
C ++ 11

Quando il long specific si verifica due volte, come in long long , denota un tipo intero con segno che è lungo almeno quanto a long , e il cui intervallo include almeno -9223372036854775807 a +9223372036854775807, incluso (cioè, - (2 ^ 63 - 1) a + (2 ^ 63 - 1)).

// support files up to 2 TiB
const long long max_file_size = 2LL << 40;

corto

Denota un tipo di intero con char che è almeno lungo come char e il cui intervallo include almeno da -32767 a +32767, incluso. Questo tipo può anche essere scritto come short int .

// (during the last year)
short hours_worked(short days_worked) {
    return 8*days_worked;
}

vuoto

Un tipo incompleto; non è possibile che un oggetto abbia il void tipo, né ci sono matrici di void o riferimenti al void . Viene utilizzato come tipo di restituzione di funzioni che non restituiscono nulla.

Inoltre, una funzione può essere dichiarata ridondante con un singolo parametro di tipo void ; questo è equivalente a dichiarare una funzione senza parametri (es. int main() e int main(void) dichiarano la stessa funzione). Questa sintassi è consentita per compatibilità con C (dove le dichiarazioni di funzione hanno un significato diverso rispetto a C ++).

Il tipo void* ("pointer to void ") ha la proprietà che ogni puntatore a oggetti può essere convertito ad esso e viceversa e generare lo stesso puntatore. Questa caratteristica rende il tipo void* adatto a certi tipi di interfacce di cancellazione del tipo (non sicure dal punto di vista del tipo), ad esempio per contesti generici in API in stile C (ad esempio qsort , pthread_create ).

Qualsiasi espressione può essere convertita in un'espressione di tipo void ; questa è chiamata espressione di valore scartato :

static_cast<void>(std::printf("Hello, %s!\n", name));  // discard return value

Questo può essere utile per segnalare esplicitamente che il valore di un'espressione non è di interesse e che l'espressione deve essere valutata solo per i suoi effetti collaterali.

wchar_t

Un numero intero abbastanza grande da rappresentare tutti i caratteri del set di caratteri estesi supportato più grande, noto anche come set di caratteri ampi. (Non è portabile presupporre che wchar_t usi una particolare codifica, come UTF-16.)

Viene normalmente utilizzato quando è necessario memorizzare caratteri su ASCII 255, in quanto ha una dimensione maggiore rispetto al tipo di carattere char .

const wchar_t message_ahmaric[] = L"ሰላም ልዑል\n"; //Ahmaric for "hello, world\n"
const wchar_t message_chinese[] = L"你好,世界\n";// Chinese for "hello, world\n"
const wchar_t message_hebrew[]  = L"שלום עולם\n"; //Hebrew for "hello, world\n"
const wchar_t message_russian[] = L"Привет мир\n";  //Russian for "hello, world\n"
const wchar_t message_tamil[]   = L"ஹலோ உலகம்\n"; //Tamil for "hello, world\n"


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow