C Data Types
C data types referance guide
Type | Explanation | Minimum size (bits) | Format specifier |
---|---|---|---|
char |
Smallest addressable unit of the machine that can contain basic character set. It is an integer type. Actual type can be either signed or unsigned. | 8 | %c |
signed char |
Of the same size as char, but guaranteed to be signed. Capable of containing at least the [−127, +127] range. | 8 | %c (or %hhi for numerical output) |
unsigned char |
Of the same size as char, but guaranteed to be unsigned. Contains at least the [0, 255] range. | 8 | %c (or %hhu for numerical output) |
short short int signed short signed short int |
Short signed integer type. Capable of containing at least the [−32,767, +32,767] range. | 16 | %hi or %hd |
unsigned short unsigned short int |
Short unsigned integer type. Contains at least the [0, 65,535] range. | 16 | %hu |
int signed signed int |
Basic signed integer type. Capable of containing at least the [−32,767, +32,767] range. | 16 | %i or %d |
unsigned unsigned int |
Basic unsigned integer type. Contains at least the [0, 65,535] range. | 16 | %u |
long long int signed long signed long int |
Long signed integer type. Capable of containing at least the [−2,147,483,647, +2,147,483,647] range. | 32 | %li or %ld |
unsigned long unsigned long int |
Long unsigned integer type. Capable of containing at least the [0, 4,294,967,295] range. | 32 | %lu |
long long long long int signed long long signed long long int |
Long long signed integer type. Capable of containing at least the [−9,223,372,036,854,775,807, +9,223,372,036,854,775,807] range. Specified since the C99 version of the standard. | 64 | %lli or %lld |
unsigned long long unsigned long long int |
Long long unsigned integer type. Contains at least the [0, +18,446,744,073,709,551,615] range. Specified since the C99 version of the standard. | 64 | %llu |
float |
Real floating-point type, usually referred to as a single-precision floating-point type. Actual properties unspecified (except minimum limits); however, on most systems, this is the IEEE 754 single-precision binary floating-point format (32 bits). This format is required by the optional Annex F “IEC 60559 floating-point arithmetic”. | %f %F %g %G %e %E %a %A |
|
double |
Real floating-point type, usually referred to as a double-precision floating-point type. Actual properties unspecified (except minimum limits); however, on most systems, this is the IEEE 754 double-precision binary floating-point format (64 bits). This format is required by the optional Annex F “IEC 60559 floating-point arithmetic”. | %lf %lF %lg %lG %le %lE %la %lA 1 |
|
long double |
Real floating-point type, usually mapped to an extended precision floating-point number format. Actual properties unspecified. It can be either x86 extended-precision floating-point format (80 bits, but typically 96 bits or 128 bits in memory with padding bytes), the non-IEEE “double-double” (128 bits), IEEE 754 quadruple-precision floating-point format (128 bits), or the same as double. See the article on long double for details. | %Lf %LF %Lg %LG %Le %LE %La %LA 1 |