Fixed width integer types (since C99)
Types
Defined in header <stdint.h>
|
|
---|---|
int8_t
|
signed integer type with width of exactly 8, 16, 32 and 64 bits respectively |
int_fast8_t
|
fastest signed integer type with width of at least 8, 16, 32 and 64 bits respectively |
int_least8_t
|
smallest signed integer type with width of at least 8, 16, 32 and 64 bits respectively |
intmax_t
|
maximum width integer type |
intptr_t
|
integer type capable of holding a pointer |
uint8_t
|
unsigned integer type with width of exactly 8, 16, 32 and 64 bits respectively |
uint_fast8_t
|
fastest unsigned integer type with width of at least 8, 16, 32 and 64 bits respectively |
uint_least8_t
|
smallest unsigned integer type with width of at least 8, 16, 32 and 64 bits respectively |
uintmax_t
|
maximum width unsigned integer type |
uintptr_t
|
unsigned integer type capable of holding a pointer |
Macro constants
Defined in header <stdint.h>
|
|
---|---|
Signed integers : minimum value |
|
INT8_MININT16_MININT32_MININT64_MIN |
minimum value of an object of type int8_t , int16_t , int32_t , int64_t (macro constant) |
INT_FAST8_MININT_FAST16_MININT_FAST32_MININT_FAST64_MIN |
minimum value of an object of type int_fast8_t , int_fast16_t , int_fast32_t , int_fast64_t (macro constant) |
INT_LEAST8_MININT_LEAST16_MININT_LEAST32_MININT_LEAST64_MIN |
minimum value of an object of type int_least8_t , int_least16_t , int_least32_t , int_least64_t (macro constant) |
INTPTR_MIN |
minimum value of an object of type intptr_t (macro constant) |
INTMAX_MIN |
minimum value of an object of type intmax_t (macro constant) |
Signed integers : maximum value |
|
INT8_MAXINT16_MAXINT32_MAXINT64_MAX |
maximum value of an object of type int8_t , int16_t , int32_t , int64_t (macro constant) |
INT_FAST8_MAXINT_FAST16_MAXINT_FAST32_MAXINT_FAST64_MAX |
maximum value of an object of type int_fast8_t , int_fast16_t , int_fast32_t , int_fast64_t (macro constant) |
INT_LEAST8_MAXINT_LEAST16_MAXINT_LEAST32_MAXINT_LEAST64_MAX |
maximum value of an object of type int_least8_t , int_least16_t , int_least32_t , int_least64_t (macro constant) |
INTPTR_MAX |
maximum value of an object of type intptr_t (macro constant) |
INTMAX_MAX |
maximum value of an object of type intmax_t (macro constant) |
Unsigned integers : maximum value |
|
UINT8_MAXUINT16_MAXUINT32_MAXUINT64_MAX |
maximum value of an object of type uint8_t , uint16_t , uint32_t , uint64_t (macro constant) |
UINT_FAST8_MAXUINT_FAST16_MAXUINT_FAST32_MAXUINT_FAST64_MAX |
maximum value of an object of type uint_fast8_t , uint_fast16_t , uint_fast32_t , uint_fast64_t (macro constant) |
UINT_LEAST8_MAXUINT_LEAST16_MAXUINT_LEAST32_MAXUINT_LEAST64_MAX |
maximum value of an object of type uint_least8_t , uint_least16_t , uint_least32_t , uint_least64_t (macro constant) |
UINTPTR_MAX |
maximum value of an object of type uintptr_t (macro constant) |
UINTMAX_MAX |
maximum value of an object of type uintmax_t (macro constant) |
Function macros for minimum-width integer constants
INT8_CINT16_CINT32_CINT64_C |
expands to an integer constant expression having the value specified by its argument and the type int_least8_t , int_least16_t , int_least32_t , int_least64_t respectively(function macro) |
INTMAX_C |
expands to an integer constant expression having the value specified by its argument and the type intmax_t (function macro) |
UINT8_CUINT16_CUINT32_CUINT64_C |
expands to an integer constant expression having the value specified by its argument and the type uint_least8_t , uint_least16_t , uint_least32_t , uint_least64_t respectively(function macro) |
UINTMAX_C |
expands to an integer constant expression having the value specified by its argument and the type uintmax_t (function macro) |
#include <stdint.h>
UINT64_C(0x123) // might expand to 0x123ULL or 0x123UL
Format macro constants
Defined in header <inttypes.h>
|
---|
Format constants for the fprintf family of functions
Equivalent for |
Description | Macros for data types | ||||
---|---|---|---|---|---|---|
|
|
|
|
|
||
x = 8, 16, 32 or 64 | ||||||
d
|
output of a signed decimal integer value | PRIdx | PRIdLEASTx | PRIdFASTx | PRIdMAX | PRIdPTR |
i
|
PRIix | PRIiLEASTx | PRIiFASTx | PRIiMAX | PRIiPTR | |
u
|
output of an unsigned decimal integer value | PRIux | PRIuLEASTx | PRIuFASTx | PRIuMAX | PRIuPTR |
o
|
output of an unsigned octal integer value | PRIox | PRIoLEASTx | PRIoFASTx | PRIoMAX | PRIoPTR |
x
|
output of an unsigned lowercase hexadecimal integer value | PRIxx | PRIxLEASTx | PRIxFASTx | PRIxMAX | PRIxPTR |
X
|
output of an unsigned uppercase hexadecimal integer value | PRIXx | PRIXLEASTx | PRIXFASTx | PRIXMAX | PRIXPTR |
Format constants for the fscanf family of functions
Equivalent for |
Description | Macros for data types | ||||
---|---|---|---|---|---|---|
|
|
|
|
|
||
x = 8, 16, 32 or 64 | ||||||
d
|
input of a signed decimal integer value | SCNdx | SCNdLEASTx | SCNdFASTx | SCNdMAX | SCNdPTR |
i
|
input of a signed integer value (base is determined by the first characters parsed) | SCNix | SCNiLEASTx | SCNiFASTx | SCNiMAX | SCNiPTR |
u
|
input of an unsigned decimal integer value | SCNux | SCNuLEASTx | SCNuFASTx | SCNuMAX | SCNuPTR |
o
|
input of an unsigned octal integer value | SCNox | SCNoLEASTx | SCNoFASTx | SCNoMAX | SCNoPTR |
x
|
input of an unsigned hexadecimal integer value | SCNxx | SCNxLEASTx | SCNxFASTx | SCNxMAX | SCNxPTR |
Example
#include <stdio.h>
#include <inttypes.h>
int main(void)
{
printf("%zu\n", sizeof(int64_t));
printf("%s\n", PRId64);
printf("%+"PRId64"\n", INT64_MIN);
printf("%+"PRId64"\n", INT64_MAX);
int64_t n = 7;
printf("%+"PRId64"\n", n);
}
Possible output:
8
lld
-9223372036854775808
+9223372036854775807
+7
See also
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/types/integer