The real types are the integer types and the real floating-point types.
The following types are guaranteed to be real; some are variations or aliases of others, and other, non-standard types may exist:
_Bool
atomic_
bool atomic_
char atomic_
char16_t atomic_
char32_t atomic_
int atomic_
int_ fast16_t atomic_
int_ fast32_t atomic_
int_ fast64_t atomic_
int_ fast8_t atomic_
int_ least16_t atomic_
int_ least32_t atomic_
int_ least64_t atomic_
int_ least8_t atomic_
intmax_t atomic_
intptr_t atomic_
llong atomic_
long atomic_
ptrdiff_t atomic_
schar atomic_
short atomic_
size_t atomic_
uchar atomic_
uint atomic_
uint_ fast16_t atomic_
uint_ fast32_t atomic_
uint_ fast64_t atomic_
uint_ fast8_t atomic_
uint_ least16_t atomic_
uint_ least32_t atomic_
uint_ least64_t atomic_
uint_ least8_t atomic_
uintmax_t atomic_
uintptr_t atomic_
ullong atomic_
ulong atomic_
ushort bool
char
clock_t
double
double_t
errno_t
float
float_t
int
int16_t
int32_t
int64_t
int8_t
int_
fast16_t int_
fast32_t int_
fast64_t int_
fast8_t int_
least16_t int_
least32_t int_
least64_t int_
least8_t intmax_t
intptr_t
long
long double
long long
ptrdiff_t
rsize_t
short
sig_
atomic_t signed char
size_t
time_t
uint16_t
uint32_t
uint64_t
uint8_t
uint_
fast16_t uint_
fast32_t uint_
fast64_t uint_
fast8_t uint_
least16_t uint_
least32_t uint_
least64_t uint_
least8_t uintmax_t
uintptr_t
unsigned
unsigned char
unsigned long
unsigned long long
unsigned short
wchar_t
wint_t