Tipi fondamentali (C++)
I tipi fondamentali in C++ sono suddivisi in tre categorie: integrali, a virgola mobile e void. I tipi integrali sono in grado di gestire numeri interi. I tipi a virgola mobile sono in grado di specificare i valori che possono contenere parti frazionarie.
I tipi void descrivono un set di valori vuoto. Non è possibile specificare alcuna variabile di tipo void, in quanto queste variabili vengono principalmente utilizzate per dichiarare funzioni che non restituiscono valori o puntatori generici a dati non tipizzati o tipizzati in modo arbitrario). Qualsiasi espressione può essere convertita in modo esplicito o può esserne eseguito il cast al tipo void. Tuttavia, l'utilizzo di tali espressioni è limitato ai seguenti elementi:
L'istruzione di un'espressione (per ulteriori informazioni, vedere Espressioni).
L'operando sinistro dell'operatore virgola (per ulteriori informazioni, vedere Operatore virgola.)
Il secondo o il terzo operando dell'operatore condizionale (? :). (per ulteriori informazioni, vedere Espressioni con operatore condizionale).
Nella tabella seguente sono descritte le restrizioni relative alle dimensioni dei tipi. Queste restrizioni sono indipendenti dell'implementazione Microsoft.
Tipi fondamentali del linguaggio C++
Categoria |
Tipo |
Contenuto |
---|---|---|
Integrale |
char |
Il tipo char è un tipo integrale che generalmente contiene membri del set di caratteri di esecuzione (in Microsoft C++, è ASCII). |
|
|
Il compilatore C++ considera le variabili di tipo char, con segno char e unsigned char come se avessero tipi differenti. Le variabili di tipo char vengono promosse a int come se fossero di tipo char con segno per impostazione predefinita, a meno che non venga utilizzata l'opzione di compilazione /J. In questo caso, sono considerate come tipo unsigned char e sono promosse a int senza estensione del segno. |
|
bool |
Il tipo bool è un tipo integrale che può assumere uno dei due valori true o false. La relativa dimensione non è specificata. |
|
short |
Il tipo short int (o semplicemente short) è un tipo integrale di dimensione maggiore o uguale alla dimensione del tipo char e di dimensione minore o uguale alla dimensione del tipo int. |
|
|
Gli oggetti di tipo short possono essere dichiarati come short con segno o come short senza segno. Short con segno è un sinonimo di short. |
|
int |
Il tipo int è un tipo integrale di dimensione maggiore o uguale alla dimensione del tipo short int e di dimensione minore o uguale alla dimensione del tipo long. |
|
|
Gli oggetti di tipo int possono essere dichiarati come int con segno o come unsigned int. Signed int è un sinonimo di int. |
|
__intn |
Intero con dimensione, dove n è la dimensione in bit della variabile di tipo intero. Il valore di n può essere 8, 16, 32 o 64. (__intn è una parola chiave specifica di Microsoft). |
|
long |
Il tipo long (o long int) è un tipo integrale che è maggiore o uguale alla dimensione di tipo int. |
|
|
Gli oggetti di tipo long possono essere dichiarati come long con segno long o come long unsigned . Signed long è un sinonimo di long. |
long long |
Di dimensione maggiore di un tipo long senza segno. |
|
Gli oggetti di tipo long long possono essere dichiarati come long long con segno o long long unsigned . long long Signed è un sinonimo di long long. |
||
Virgola mobile |
float |
Il tipo float è il tipo a virgola mobile più piccolo. |
|
double |
Il tipo double è un tipo a virgola mobile che è maggiore o uguale a float, ma minore o uguale alla dimensione del tipo long double. |
|
long double1 |
Il tipo long double è un tipo a virgola mobile che è uguale al tipo double. |
Carattere wide |
__wchar_t |
Una variabile di __wchar_t designa un tipo di carattere wide o multibyte. Per impostazione predefinita, wchar_t è un tipo nativo, ma è possibile utilizzare /Zc:wchar_t- per creare un typedef wchar_t per un tipo short senza segno. Utilizzare il prefisso L prima di una costante di carattere o di stringa per definire la costante del tipo di carattere wide. |
1 La rappresentazione di long double e di double è identica. Tuttavia, long double e double sono tipi distinti.
Sezione specifica Microsoft
Nella tabella seguente è indicata la quantità di archiviazione richiesta per i tipi fondamentali di Microsoft C++.
Dimensioni dei tipi fondamentali
Tipo |
Dimensione |
---|---|
bool |
1 byte |
char, unsigned char, char con segno |
1 byte |
short, short senza segno |
2 byte |
int, unsigned int |
4 byte |
__intn |
8, 16, 32, 64 o 128 bit a seconda del valore di n __intn è specifico di Microsoft. |
long, unsigned long |
4 byte |
float |
4 byte |
double |
8 byte |
long double1 |
8 byte |
long long |
Equivalente a __int64. |
1 La rappresentazione di long double e di double è identica. Tuttavia, long double e double sono tipi distinti.
Fine sezione specifica Microsoft
Per un riepilogo dell'intervallo di valori di ogni tipo, vedere Intervalli dei tipi di dati.
Per ulteriori informazioni sulla conversione dei tipi, vedere Conversioni standard.