::

C++ scope resolution operator. Defined on struct, union, and

 

class types.

::

Double colons also represent the GDB scope operator (see

 

“Expressions” (page 83)). Same precedence as ::, above.

If an operator is redefined in the user code, GDB usually attempts to invoke the redefined version instead of using the original meaning.

9.4.1.2C 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' (that is zero), and hexadecimal constants by a leading '0x' or '0X'. Constants can 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 a 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 or 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.

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.

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.

108 Using GDB with Different Languages