Puoi specificare un numero intero lungo più lungo di long
come long long
.
Ma cosa significherebbe specificare un numero intero più intero di int
?
Più precisamente. In C ++ hai tipo int
, che è normalmente un numero intero a 32 bit. Poi hai i modificatori short
e long
che possono essere usati come illustrato dal seguente esempio:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << "short int: " << sizeof(short int) << endl;
cout << "short: " << sizeof(short) << endl;
cout << "int: " << sizeof(int) << endl;
cout << "long int: " << sizeof(long int) << endl;
cout << "long: " << sizeof(long) << endl;
cout << "long long int: " << sizeof(long long int) << endl;
cout << "long long: " << sizeof(long long) << endl;
}
Sulla mia macchina Linux, in esecuzione g++ 4.7.2
, questo dà:
short int: 2
short: 2
int: 4
long int: 8
long: 8
long long int: 8
long long: 8
-
int
è un numero intero con segno a 32 bit
-
short int
(abbreviato, short
) è un intero con segno a 16 bit
-
long int
(abbreviato, long
) è un intero con segno a 64 bit
-
long long int
(abbreviato, long long
) è ancora un intero con segno a 64 bit sulla mia architettura / compilatore, ma è nella lingua per consentire un tipo intero più lungo (ad es. 128 bit) su architetture / compilatori diversi.
Quindi, come Will ha spiegato: in questo contesto, long
è un modificatore che può essere applicato due volte mentre int
non è un modificatore.