An object of a given data type is stored in a section of memory having a discreet size. Objects of different data types require different amounts of memory. Table 3-2 shows the size and range of the basic data types.
Type | Size | Range |
---|---|---|
Integral Types | ||
short int , or signed short int
| 16 bits | -32768 to 32767 |
unsigned short int |
16 bits | 0 to 65535 |
int or signed int | 32 bits | -2147483648 to 2147483647 |
unsigned int | 32 bits | 0 to 4294967295 |
long
int , or signed long int
(OpenVMS) | 32 bits | - 2147483648 to 2147483647 |
long
int , or signed long int
(Digital UNIX) | 64 bits | - 9223372036854775808 to 9223372036854775807 |
unsigned long int
(OpenVMS) | 32 bits | 0 to 4294967295 |
unsigned long int
(Digital UNIX) |
64 bits | 0 to 18446744073709551615 |
signed __int64 (Alpha) | 64 bits | -9223372036854775808 to 9223372036854775807 |
unsigned __int64 (Alpha) | 64 bits | 0 to 18446744073709551615 |
Integral Character Types | ||
char and signed char
| 8 bits | -128 to 127 |
unsigned char |
8 bits | 0 to 255 |
wchar_t | 32 bits | 0 to 4294967295 |
Floating- Point Types (range is for absolute value) | ||
float | 32 bits | 1.1 x 10 -38 to 3.4 x 10 38 |
double | 64 bits | 2.2 x 10 -308 to 1.7 x 10 308 |
long double (OpenVMS Alpha) | 128 bits | 3.4 x 10 -49321 to 1.2 x 10 49321 |
long
double (OpenVMS VAX, Digital
UNIX) | Same as double |
Same as double |
Derived types can require more memory space.
See your platform-specific DEC C documentation for the sizes of implementation-defined data types.