[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
These macros define the sizes and other characteristics of the standard basic data types used in programs being compiled. Unlike the macros in the previous section, these apply to specific features of C and related languages, rather than to fundamental aspects of storage layout.
INT_TYPE_SIZE
int
on the
target machine. If you don't define this, the default is one word.
MAX_INT_TYPE_SIZE
int
on the target
machine. If this is undefined, the default is INT_TYPE_SIZE
.
Otherwise, it is the constant value that is the largest value that
INT_TYPE_SIZE
can have at run-time. This is used in cpp
.
SHORT_TYPE_SIZE
short
on the
target machine. If you don't define this, the default is half a word.
(If this would be less than one storage unit, it is rounded up to one
unit.)
LONG_TYPE_SIZE
long
on the
target machine. If you don't define this, the default is one word.
MAX_LONG_TYPE_SIZE
long
on the
target machine. If this is undefined, the default is
LONG_TYPE_SIZE
. Otherwise, it is the constant value that is the
largest value that LONG_TYPE_SIZE
can have at run-time. This is
used in cpp
.
LONG_LONG_TYPE_SIZE
long long
on the
target machine. If you don't define this, the default is two
words. If you want to support GNU Ada on your machine, the value of this
macro must be at least 64.
CHAR_TYPE_SIZE
char
on the
target machine. If you don't define this, the default is
BITS_PER_UNIT
.
MAX_CHAR_TYPE_SIZE
char
on the
target machine. If this is undefined, the default is
CHAR_TYPE_SIZE
. Otherwise, it is the constant value that is the
largest value that CHAR_TYPE_SIZE
can have at run-time. This is
used in cpp
.
FLOAT_TYPE_SIZE
float
on the
target machine. If you don't define this, the default is one word.
DOUBLE_TYPE_SIZE
double
on the
target machine. If you don't define this, the default is two
words.
LONG_DOUBLE_TYPE_SIZE
long double
on
the target machine. If you don't define this, the default is two
words.
WIDEST_HARDWARE_FP_SIZE
LONG_DOUBLE_TYPE_SIZE
.
If you do not define this macro, the value of LONG_DOUBLE_TYPE_SIZE
is the default.
DEFAULT_SIGNED_CHAR
char
should be signed or unsigned by default. The user can
always override this default with the options `-fsigned-char'
and `-funsigned-char'.
DEFAULT_SHORT_ENUMS
enum
type
only as many bytes as it takes to represent the range of possible values
of that type. A nonzero value means to do that; a zero value means all
enum
types should be allocated like int
.
If you don't define the macro, the default is 0.
SIZE_TYPE
size_t
is defined using the
contents of the string.
The string can contain more than one keyword. If so, separate them with
spaces, and write first any length keyword, then unsigned
if
appropriate, and finally int
. The string must exactly match one
of the data type names defined in the function
init_decl_processing
in the file `c-decl.c'. You may not
omit int
or change the order--that would cause the compiler to
crash on startup.
If you don't define this macro, the default is "long unsigned
int"
.
PTRDIFF_TYPE
ptrdiff_t
is defined using the contents of the string. See
SIZE_TYPE
above for more information.
If you don't define this macro, the default is "long int"
.
WCHAR_TYPE
wchar_t
is defined using
the contents of the string. See SIZE_TYPE
above for more
information.
If you don't define this macro, the default is "int"
.
WCHAR_TYPE_SIZE
cpp
, which cannot make use of
WCHAR_TYPE
.
MAX_WCHAR_TYPE_SIZE
WCHAR_TYPE_SIZE
. Otherwise, it is the constant value that is the
largest value that WCHAR_TYPE_SIZE
can have at run-time. This is
used in cpp
.
WINT_TYPE
printf
and returned from
getwc
. The typedef name wint_t
is defined using the
contents of the string. See SIZE_TYPE
above for more
information.
If you don't define this macro, the default is "unsigned int"
.
INTMAX_TYPE
intmax_t
is defined using the contents of the
string. See SIZE_TYPE
above for more information.
If you don't define this macro, the default is the first of
"int"
, "long int"
, or "long long int"
that has as
much precision as long long int
.
UINTMAX_TYPE
uintmax_t
is defined using the contents
of the string. See SIZE_TYPE
above for more information.
If you don't define this macro, the default is the first of
"unsigned int"
, "long unsigned int"
, or "long long
unsigned int"
that has as much precision as long long unsigned
int
.
OBJC_INT_SELECTORS
int
.
If this macro is not defined, then selectors should have the type
struct objc_selector *
.
OBJC_SELECTORS_WITHOUT_LABELS
On certain machines, it is important to have a separate label for each selector because this enables the linker to eliminate duplicate selectors.
TARGET_PTRMEMFUNC_VBIT_LOCATION
struct { union { void (*fn)(); ptrdiff_t vtable_index; }; ptrdiff_t delta; }; |
The C++ compiler must use one bit to indicate whether the function that
will be called through a pointer-to-member-function is virtual.
Normally, we assume that the low-order bit of a function pointer must
always be zero. Then, by ensuring that the vtable_index is odd, we can
distinguish which variant of the union is in use. But, on some
platforms function pointers can be odd, and so this doesn't work. In
that case, we use the low-order bit of the delta
field, and shift
the remainder of the delta
field to the left.
GCC will automatically make the right selection about where to store
this bit using the FUNCTION_BOUNDARY
setting for your platform.
However, some platforms such as ARM/Thumb have FUNCTION_BOUNDARY
set such that functions always start at even addresses, but the lowest
bit of pointers to functions indicate whether the function at that
address is in ARM or Thumb mode. If this is the case of your
architecture, you should define this macro to
ptrmemfunc_vbit_in_delta
.
In general, you should not have to define this macro. On architectures
in which function addresses are always even, according to
FUNCTION_BOUNDARY
, GCC will automatically define this macro to
ptrmemfunc_vbit_in_pfn
.
TARGET_BELL
TARGET_BS
TARGET_TAB
TARGET_NEWLINE
TARGET_VT
TARGET_FF
TARGET_CR
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |