15.4.1.2 C and C++ Constants
gdb allows you to express the constants of C and C++ in the
following ways:
- Integer constants are a sequence of digits. Octal constants are
specified by a leading ‘0’ (i.e. zero), and hexadecimal constants
by a leading ‘0x’ or ‘0X’. Constants may also end with a letter
‘l’, specifying that the constant should be treated as a
long
value.
- Floating point constants are a sequence of digits, followed by a decimal
point, followed by a sequence of digits, and optionally followed by an
exponent. An exponent is of the form:
‘e[[+]|-]nnn’, where nnn is another
sequence of digits. The ‘+’ is optional for positive exponents.
A floating-point constant may also end with a letter ‘f’ or
‘F’, specifying that the constant should be treated as being of
the
float
(as opposed to the default double
) type; or with
a letter ‘l’ or ‘L’, which specifies a long double
constant.
- Enumerated constants consist of enumerated identifiers, or their
integral equivalents.
- Character constants are a single character surrounded by single quotes
(
'
), or a number—the ordinal value of the corresponding character
(usually its ascii value). Within quotes, the single character may
be represented by a letter or by escape sequences, which are of
the form ‘\nnn’, where nnn is the octal representation
of the character's ordinal value; or of the form ‘\x’, where
‘x’ is a predefined special character—for example,
‘\n’ for newline.
Wide character constants can be written by prefixing a character
constant with ‘L’, as in C. For example, ‘L'x'’ is the wide
form of ‘x’. The target wide character set is used when
computing the value of this constant (see Character Sets).
- String constants are a sequence of character constants surrounded by
double quotes (
"
). Any valid character constant (as described
above) may appear. Double quotes within the string must be preceded by
a backslash, so for instance ‘"a\"b'c"’ is a string of five
characters.
Wide string constants can be written by prefixing a string constant
with ‘L’, as in C. The target wide character set is used when
computing the value of this constant (see Character Sets).
- Pointer constants are an integral value. You can also write pointers
to constants using the C operator ‘&’.
- Array constants are comma-separated lists surrounded by braces ‘{’
and ‘}’; for example, ‘{1,2,3}’ is a three-element array of
integers, ‘{{1,2}, {3,4}, {5,6}}’ is a three-by-two array,
and ‘{&"hi", &"there", &"fred"}’ is a three-element array of pointers.