Next: Generic Types, Up: Types
These macros check for particular C types in sys/types.h, stdlib.h, stdint.h, inttypes.h and others, if they exist.
The Gnulib stdint
module is an alternate way to define many of
these symbols; it is useful if you prefer your code to assume a
C99-or-better environment. See Gnulib.
Define
GETGROUPS_T
to be whichever ofgid_t
orint
is the base type of the array argument togetgroups
.
If stdint.h or inttypes.h defines the type
int8_t
, defineHAVE_INT8_T
. Otherwise, defineint8_t
to a signed integer type that is exactly 8 bits wide and that uses two's complement representation, if such a type exists.
If stdint.h or inttypes.h defines the type
intmax_t
, defineHAVE_INTMAX_T
. Otherwise, defineintmax_t
to the widest signed integer type.
If stdint.h or inttypes.h defines the type
intptr_t
, defineHAVE_INTPTR_T
. Otherwise, defineintptr_t
to a signed integer type wide enough to hold a pointer, if such a type exists.
If the C compiler supports a working
long double
type, defineHAVE_LONG_DOUBLE
. Thelong double
type might have the same range and precision asdouble
.
If the C compiler supports a working
long double
type with more range or precision than thedouble
type, defineHAVE_LONG_DOUBLE_WIDER
.
If the C compiler supports a working
long long int
type, defineHAVE_LONG_LONG_INT
.
Define
HAVE_MBSTATE_T
if<wchar.h>
declares thembstate_t
type. Also, definembstate_t
to be a type if<wchar.h>
does not declare it.
If signal.h declares
signal
as returning a pointer to a function returningvoid
, defineRETSIGTYPE
to bevoid
; otherwise, define it to beint
.Define signal handlers as returning type
RETSIGTYPE
:RETSIGTYPE hup_handler () { ... }
Define
uid_t
andgid_t
to suitable types, if standard headers do not define them.
If stdint.h or inttypes.h defines the type
uint8_t
, defineHAVE_UINT8_T
. Otherwise, defineuint8_t
to an unsigned integer type that is exactly 8 bits wide, if such a type exists.
If stdint.h or inttypes.h defines the type
uintmax_t
, defineHAVE_UINTMAX_T
. Otherwise, defineuintmax_t
to the widest unsigned integer type.