Tóm Tắt
Data Type Ranges
In this article
The Microsoft C++ 32-bit and 64-bit compilers recognize the types in the table later in this article.
-
int
(unsigned int
) -
__int8
(unsigned __int8
) -
__int16
(unsigned __int16
) -
__int32
(unsigned __int32
) -
__int64
(unsigned __int64
) -
short
(unsigned short
) -
long
(unsigned long
) -
long long
(unsigned long long
)
If its name begins with two underscores (__
), a data type is non-standard.
The ranges that are specified in the following table are inclusive-inclusive.
Type Name
Bytes
Other Names
Range of Values
int
4
signed
-2,147,483,648 to 2,147,483,647
unsigned int
4
unsigned
0 to 4,294,967,295
__int8
1
char
-128 to 127
unsigned __int8
1
unsigned char
0 to 255
__int16
2
short
, short int
, signed short int
-32,768 to 32,767
unsigned __int16
2
unsigned short
, unsigned short int
0 to 65,535
__int32
4
signed
, signed int
, int
-2,147,483,648 to 2,147,483,647
unsigned __int32
4
unsigned
, unsigned int
0 to 4,294,967,295
__int64
8
long long
, signed long long
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
unsigned __int64
8
unsigned long long
0 to 18,446,744,073,709,551,615
bool
1
none
false
or true
char
1
none
-128 to 127 by default
0 to 255 when compiled by using /J
signed char
1
none
-128 to 127
unsigned char
1
none
0 to 255
short
2
short int
, signed short int
-32,768 to 32,767
unsigned short
2
unsigned short int
0 to 65,535
long
4
long int
, signed long int
-2,147,483,648 to 2,147,483,647
unsigned long
4
unsigned long int
0 to 4,294,967,295
long long
8
none (but equivalent to __int64
)
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
unsigned long long
8
none (but equivalent to unsigned __int64
)
0 to 18,446,744,073,709,551,615
enum
varies
none
float
4
none
3.4E +/- 38 (7 digits)
double
8
none
1.7E +/- 308 (15 digits)
long double
same as double
none
Same as double
wchar_t
2
__wchar_t
0 to 65,535
Depending on how it’s used, a variable of __wchar_t
designates either a wide-character type or multibyte-character type. Use the L
prefix before a character or string constant to designate the wide-character-type constant.
signed
and unsigned
are modifiers that you can use with any integral type except bool
. Note that char
, signed char
, and unsigned char
are three distinct types for the purposes of mechanisms like overloading and templates.
The int
and unsigned int
types have a size of four bytes. However, portable code should not depend on the size of int
because the language standard allows this to be implementation-specific.
C/C++ in Visual Studio also supports sized integer types. For more information, see __int8, __int16, __int32, __int64
and Integer Limits.
For more information about the restrictions of the sizes of each type, see Built-in types.
The range of enumerated types varies depending on the language context and specified compiler flags. For more information, see C Enumeration Declarations and Enumerations.
See also
Keywords
Built-in types